angular-cn/packages/compiler-cli/test/ngtsc/fake_core
Alex Rickabaugh 27bc7dcb43 feat(ivy): ngtsc compiles @Component, @Directive, @NgModule (#24427)
This change supports compilation of components, directives, and modules
within ngtsc. Support is not complete, but is enough to compile and test
//packages/core/test/bundling/todo in full AOT mode. Code size benefits
are not yet achieved as //packages/core itself does not get compiled, and
some decorators (e.g. @Input) are not stripped, leading to unwanted code
being retained by the tree-shaker. This will be improved in future commits.

PR Close #24427
2018-06-14 14:36:45 -07:00
..
BUILD.bazel build: update buildifier to latest (#24296) 2018-06-12 11:42:35 -07:00
README.md feat(ivy): first steps towards ngtsc mode (#23455) 2018-04-25 13:25:33 -07:00
index.ts feat(ivy): ngtsc compiles @Component, @Directive, @NgModule (#24427) 2018-06-14 14:36:45 -07:00
package.json feat(ivy): first steps towards ngtsc mode (#23455) 2018-04-25 13:25:33 -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.