541ce98432
Previously, when `ngcc` needed to mark multiple properties as processed (e.g. a processed format property and `typings` or all supported properties for a non-Angular entry-point), it would update each one separately and write the file to disk multiple times. This commit changes this, so that multiple properties can be updated at once with one file-write operation. While this theoretically improves performance (reducing the I/O operations), it is not expected to have any noticeable impact in practice, since these operations are a tiny fraction of `ngcc`'s work. This change will be useful for a subsequent change to mark all properties that map to the same `formatPath` as processed, once it is processed the first time. PR Close #32003
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