angular-cn/packages/compiler-cli/ngcc
Pete Bacon Darwin e037840b88 perf(ngcc): speed up the `getBasePaths()` computation (#36881)
This function needs to deduplicate the paths that are found from the
paths mappings. Previously this deduplication was not linear and also
called the expensive `relative()` function many times.

This commit, suggested by @JoostK, reduces the complexity of the deduplication
by using a tree structure built from the segments of each path.

PR Close #36881
2020-05-04 12:50:02 -07:00
..
src perf(ngcc): speed up the `getBasePaths()` computation (#36881) 2020-05-04 12:50:02 -07:00
test perf(ngcc): speed up the `getBasePaths()` computation (#36881) 2020-05-04 12:50:02 -07:00
BUILD.bazel fix(ngcc): use path-mappings from tsconfig in dependency resolution (#36180) 2020-03-24 10:16:12 -07:00
README.md refactor(ivy): move ngcc into a higher level folder (#29092) 2019-03-20 14:45:54 -04:00
index.ts refactor(ngcc): move `PathMappings` to separate file to avoid circular dependency (#36626) 2020-04-29 14:28:26 -07:00
main-ivy-ngcc.ts fix(ngcc): rename the executable from `ivy-ngcc` to `ngcc` (#33140) 2019-10-14 16:29:14 +00:00
main-ngcc.ts fix(ngcc): provide a unique exit code for timeouts (#36838) 2020-05-01 09:52:09 -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