angular-docs-cn/packages/compiler-cli/linker
JoostK e75244ec00 feat(compiler-cli): support for partial compilation of components (#39707)
This commit implements partial compilation of components, together with
linking the partial declaration into its full AOT output.

This commit does not yet enable accurate source maps into external
templates. This requires additional work to account for escape sequences
which is non-trivial. Inline templates that were represented using a
string or template literal are transplated into the partial declaration
output, so their source maps should be accurate. Note, however, that
the accuracy of source maps is not currently verified in tests; this is
also left as future work.

The golden files of partial compilation output have been updated to
reflect the generated code for components. Please note that the current
output should not yet be considered stable.

PR Close #39707
2020-11-24 13:05:49 -08:00
..
babel refactor(compiler-cli): allow visiting call expressions without an active linker (#39707) 2020-11-24 13:05:40 -08:00
src feat(compiler-cli): support for partial compilation of components (#39707) 2020-11-24 13:05:49 -08:00
test feat(compiler-cli): support for partial compilation of components (#39707) 2020-11-24 13:05:49 -08:00
BUILD.bazel refactor(compiler-cli): linker - add Babel plugin, FileLinker and initial PartialLinkers (#39116) 2020-10-19 11:23:45 -07:00
README.md refactor(compiler-cli): linker - add Babel plugin, FileLinker and initial PartialLinkers (#39116) 2020-10-19 11:23:45 -07:00
index.ts refactor(compiler-cli): linker - add Babel plugin, FileLinker and initial PartialLinkers (#39116) 2020-10-19 11:23:45 -07:00

README.md

Angular Linker

This package contains a FileLinker and supporting code to be able to "link" partial declarations of components, directives, etc in libraries to produce the full definitions.

The partial declaration format allows library packages to be published to npm without exposing the underlying Ivy instructions.

The tooling here allows application build tools (e.g. CLI) to produce fully compiled components, directives, etc at the point when the application is bundled. These linked files can be cached outside node_modules so it does not suffer from problems of mutating packages in node_modules.

Generally this tooling will be wrapped in a transpiler specific plugin, such as the provided Babel plugin.

Unit Testing

The unit tests are built and run using Bazel:

yarn bazel test //packages/compiler-cli/linker/test