angular-cn/packages/compiler-cli/ngcc
JoostK 638ba4a2cf fix(ivy): ngcc - prefer JavaScript source files when resolving module imports (#30017)
Packages that do not follow APF may have the declaration files in the same
directory as one source format, typically ES5. This is problematic for ngcc,
as it needs to create a TypeScript program with all JavaScript sources of
an entry-point, whereas TypeScript's module resolution mechanism would have
resolved an internal module import to the external facing .d.ts declaration
file, instead of the JavaScript source file. This behavior results in the
program to be analysed being incomplete.

This commit introduces a custom compiler host that recognizes the above
scenario and rewires the resolution of a .d.ts declaration file to its
JavaScript counterpart, if applicable.

Fixes #29939

PR Close #30017
2019-05-01 15:41:53 -07:00
..
src fix(ivy): ngcc - prefer JavaScript source files when resolving module imports (#30017) 2019-05-01 15:41:53 -07:00
test fix(ivy): ngcc - prefer JavaScript source files when resolving module imports (#30017) 2019-05-01 15:41:53 -07:00
BUILD.bazel refactor(ivy): move metadata registration to its own package (#29698) 2019-04-19 11:15:25 -07:00
README.md refactor(ivy): move ngcc into a higher level folder (#29092) 2019-03-20 14:45:54 -04:00
index.ts feat(ivy): ngcc - support additional paths to process (#29643) 2019-04-29 12:37:21 -07:00
main-ngcc.ts refactor(ivy): ngcc - remove the last remnants of `path` and `canonical-path` (#29643) 2019-04-29 12:37:21 -07:00

README.md

Angular Compatibility Compiler (ngcc)

This compiler will convert node_modules compiled with ngc, into node_modules which appear to have been compiled with ngtsc.

This conversion will allow such "legacy" packages to be used by the Ivy rendering engine.

Building

The project is built using Bazel:

yarn bazel build //packages/compiler-cli/ngcc

Unit Testing

The unit tests are built and run using Bazel:

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

Integration Testing

There are tests that check the behavior of the overall executable:

yarn bazel test //packages/compiler-cli/ngcc/test:integration