7db269ba6a
Previously, `ngcc` would avoid processing a `formatPath` that a property in `package.json` mapped to, if either the _property_ was marked as processed or the `formatPath` (i.e. the file(s)) was processed in the same `ngcc` run (since the `compiledFormats` set was not persisted across runs). This could lead in a situation where a `formatPath` would be compiled twice (if for example properties `a` and `b` both mapped to the same `formatPath` and one would run `ngcc` for property `a` and then `b`). This commit fixes it by ensuring that as soon as a `formatPath` has been processed all corresponding properties are marked as processed (which persists across `ngcc` runs). 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