mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
Ngcc relies on cluster for distributing work. The master controller sends messages to the workers as soon as the worker becomes `online`. The online event is sent as part of the NodeJS cluster logic itself. This does not work well because technically `online` could emit before the worker started listening (this seems to be case now with ESM as the imports are loaded in a way where `online` emits too early; before the worker actually listens for messages). We fix this by explicitly notifying the master when the worker is ready for retrieving IPC messages/or tasks. This is more safe anyway as it's not clearly specified when `online` emits. PR Close #43431 |
||
|---|---|---|
| .. | ||
| src | ||
| test | ||
| BUILD.bazel | ||
| index.ts | ||
| main-ngcc.ts | ||
| 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