Go to file
Paul Gschwendtner 872a3656fe refactor(compiler): allow disabling external symbol factory reexports (#28594)
Currently external static symbols which are referenced by AOT
compiler generated code, will be re-exported in the corresponding
`.ngfactory` files.

This way of handling the symbol resolution has been introduced in
favor of avoding dynamically generated module dependencies. This
behavior therefore avoids any strict dependency failures.

Read more about a particular scenario here: https://github.com/angular/angular/issues/25644#issuecomment-458354439

Now with `ngtsc`, this behavior has changed since `ngtsc` just
introduces these module dependencies in order to properly reference
the external symbol from its original location (also eliminating the need
for factories). Similarly we should provide a way to use the same
behavior with `ngc` because the downside of using the re-exported symbol
resolution is that user-code transformations (e.g. the `ngInjectableDef`
metadata which is added to the user source code), can resolve external
symbols to previous factory symbol re-exports. This is a critical issue
because it means that the actual JIT code references factory files in order
to access external symbols. This means that the generated output cannot
shipped to NPM without shipping the referenced factory files.

A specific example has been reported here: https://github.com/angular/angular/issues/25644#issue-353554070

PR Close #28594
2019-02-11 17:12:50 +00:00
.buildkite ci: update buildkite provision instructions (#28273) 2019-02-07 12:36:27 -08:00
.circleci ci: use fallback caches (#28545) 2019-02-07 16:45:53 -08:00
.github ci: add all required statuses to the requiredStatuses list for angular-robot (#28613) 2019-02-08 09:20:28 -08:00
.vscode build: update vscode settings to support clang-format (#28348) 2019-01-25 12:48:09 -08:00
aio docs: re-enable E2E tests for Http guide (#28592) 2019-02-11 17:09:25 +00:00
docs docs: update merge label meaning (#28574) 2019-02-08 09:21:04 -08:00
integration ci: do not install firebase-tools without cache (#28615) 2019-02-08 10:23:19 -08:00
modules build: remove outdated polymer tree benchmark (#28568) 2019-02-08 13:37:36 -08:00
packages refactor(compiler): allow disabling external symbol factory reexports (#28594) 2019-02-11 17:12:50 +00:00
scripts refactor(ivy): rename "blacklist" to "blocklist" (#28536) 2019-02-05 14:06:15 -05:00
third_party build: fix routing playground example using external resource (#28490) 2019-02-04 16:51:11 -05:00
tools test(ivy): enable passing material tests (#28560) 2019-02-08 16:42:45 -08:00
.bazelignore build: update to rules_typescript 0.23.2 and rules_nodejs 0.16.8 (#28532) 2019-02-05 16:55:43 -05:00
.bazelrc build(bazel): update to bazel 0.22.0 and turn on --incompatible_strict_action_env flag (#28404) 2019-01-28 11:48:41 -08:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.editorconfig build: use https link to editorconfig.org in .editorconfig (#27664) 2018-12-18 09:30:09 -08:00
.gitattributes chore: force lf EOL for ts files (#11143) 2016-08-29 12:41:58 -07:00
.gitignore build: update and unify gitignore (#28316) 2019-01-23 10:55:21 -08:00
.mailmap build: add a Git .mailmap with my new name (#19550) 2017-10-09 14:35:30 -07:00
.nvmrc build: update .nvmrc file to correct node version (#25992) 2018-09-18 13:11:58 -07:00
BUILD.bazel build: load angular.js minified output in upgrade tests (#27711) 2018-12-18 09:29:27 -08:00
CHANGELOG.md release: cut the v8.0.0-beta.3 release 2019-02-05 20:02:00 -08:00
CODE_OF_CONDUCT.md docs: fix community tab in GitHub by copying CoC 2018-02-27 19:02:30 -08:00
CONTRIBUTING.md build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00
LICENSE build: bump year (#27880) 2019-01-11 11:15:59 -08:00
README.md docs: update link for CircleCI badge to point workflow 2019-02-07 14:14:59 -08:00
WORKSPACE build: remove all deps on io_bazel_rules_go (#28532) 2019-02-05 16:55:43 -05:00
browser-providers.conf.js build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00
gulpfile.js build: `gulp format` only changed lines by default (#28411) 2019-02-04 16:49:16 -05:00
index.bzl style: format .bzl files with buildifier (#23544) 2018-08-08 13:12:07 -07:00
karma-js.conf.js ci: move local and saucelabs unit tests to circle (#27937) 2019-01-07 15:35:09 -08:00
package.json build: serve benchmark tree examples with bazel (#28568) 2019-02-08 13:37:36 -08:00
protractor-e2e.conf.js build: re-enable disabled e2e tests (#27979) 2019-01-09 10:41:16 -08:00
protractor-perf.conf.js build: unable to run perf bazel e2e tests on windows (#28568) 2019-02-08 13:37:36 -08:00
shims_for_IE.js Revert "refactor: add license header to JS files & format files (#12035)" 2016-10-04 14:06:41 -07:00
test-events.js fix(platform-browser): run BLACK_LISTED_EVENTS outside of ngZone (#18993) 2017-09-05 15:33:22 -05:00
test-main.js refactor(core): remove withBody from public testing API (#25171) 2018-07-31 15:09:32 -07:00
tslint.json style: tslint enforces no debugger statements left behind (#25532) 2018-08-16 16:00:22 -07:00
yarn.lock ci: do not install firebase-tools without cache (#28615) 2019-02-08 10:23:19 -08:00
yarn.lock.readme.md build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00

README.md

CircleCI BrowserStack Status Join the chat at https://gitter.im/angular/angular npm version

Angular

Angular is a development platform for building mobile and desktop web applications using Typescript/JavaScript and other languages.

Quickstart

Get started in 5 minutes.

Changelog

Learn about the latest improvements.

Want to help?

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues in the hotlist: community-help.