angular-cn/packages/compiler-cli/test/ngtsc/fake_core
Alex Rickabaugh 3a525d196b Revert "fix(compiler): mark `NgModuleFactory` construction as not side effectful (#38147)" (#38303)
This reverts commit 7f8c2225f2.

This commit caused test failures internally, which were traced back to the
optimizer removing NgModuleFactory constructor calls when those calls caused
side-effectful registration of NgModules by their ids.

PR Close #38303
2020-07-30 12:19:35 -07:00
..
BUILD.bazel build: convert entry_point to label (#30627) 2019-06-11 00:03:11 +00:00
README.md feat(ivy): first steps towards ngtsc mode (#23455) 2018-04-25 13:25:33 -07:00
index.ts Revert "fix(compiler): mark `NgModuleFactory` construction as not side effectful (#38147)" (#38303) 2020-07-30 12:19:35 -07:00
package.json build: simplify package.jsons for all of our packages (#36944) 2020-05-06 13:54:26 -07:00

README.md

fake_core is a library designed to expose some of the same symbols as @angular/core, without requiring compilation of the whole of @angular/core. This enables unit tests for the compiler to be written without incurring long rebuilds for every change.

  • @angular/core is compiled with @angular/compiler-cli, and therefore has an implicit dependency on it. Therefore core must be rebuilt if the compiler changes.
  • Tests for the compiler which intend to build code that depends on @angular/core must have a data dependency on @angular/core. Therefore core must be built to run the compiler tests, and thus rebuilt if the compiler changes.

This rebuild cycle is expensive and slow. fake_core avoids this by exposing a subset of the @angular/core API, which enables applications to be built by the ngtsc compiler without needing a full version of core present at compile time.