angular-cn/packages/compiler-cli
JoostK 45c6360e5a feat(ivy): emit module scope metadata using pure function call (#29598)
Prior to this change, all module metadata would be included in the
`defineNgModule` call that is set as the `ngModuleDef` field of module
types. Part of the metadata is scope information like declarations,
imports and exports that is used for computing the transitive module
scope in JIT environments, preventing those references from being
tree-shaken for production builds.

This change moves the metadata for scope computations to a pure function
call that patches the scope references onto the module type. Because the
function is marked pure, it may be tree-shaken out during production builds
such that references to declarations and exports are dropped, which in turn
allows for tree-shaken any declaration that is not otherwise referenced.

Fixes #28077, FW-1035

PR Close #29598
2019-04-02 16:03:54 -07:00
..
integrationtest fix(bazel): use //:tsconfig.json as the default for ng_module (#29670) 2019-04-02 15:57:11 -07:00
ngcc feat(ivy): emit module scope metadata using pure function call (#29598) 2019-04-02 16:03:54 -07:00
src feat(ivy): emit module scope metadata using pure function call (#29598) 2019-04-02 16:03:54 -07:00
test feat(ivy): emit module scope metadata using pure function call (#29598) 2019-04-02 16:03:54 -07:00
BUILD.bazel perf(ivy): basic incremental compilation for ngtsc (#29380) 2019-04-01 15:13:56 -07:00
index.ts feat(compiler-cli): expose ngtsc as a TscPlugin (#28435) 2019-01-29 16:41:59 -08:00
ngtools2.ts refactor(compiler-cli): expose ngtools api separately (#18978) 2017-08-31 14:37:13 -07:00
package.json refactor(ivy): move ngcc into a higher level folder (#29092) 2019-03-20 14:45:54 -04:00
tsconfig-build.json build(compiler-cli): enable full TypeScript strictness (#29436) 2019-03-21 12:14:39 -04:00
tsconfig.json build(compiler-cli): enable full TypeScript strictness (#29436) 2019-03-21 12:14:39 -04:00