angular-docs-cn/packages/compiler-cli/linker
JoostK 7dcf2864a3 feat(compiler-cli): expose function to allow short-circuiting of linking (#40137)
The linker is implemented using a Babel transform such that Babel needs
to parse and walk a source file to find the declarations that need to be
compiled. If it can be determined that a source file is known not to
contain any declarations the parsing and walking can be skipped as a
performance improvement. This commit adds an exposed function for tools
that integrate the linker to use to allow short-circuiting of the linker
transform.

PR Close #40137
2020-12-22 14:53:02 -08:00
..
babel refactor(compiler-cli): emit `forwardRef` invocation for forward type references (#40117) 2020-12-22 08:39:58 -08:00
src feat(compiler-cli): expose function to allow short-circuiting of linking (#40137) 2020-12-22 14:53:02 -08:00
test feat(compiler-cli): expose function to allow short-circuiting of linking (#40137) 2020-12-22 14:53:02 -08:00
BUILD.bazel refactor(compiler-cli): use semver range checking for partial versions (#39847) 2020-12-04 10:26:17 -08: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 feat(compiler-cli): expose function to allow short-circuiting of linking (#40137) 2020-12-22 14:53:02 -08: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