mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
The Angular Core and localize package currently use deep imports for code that is shipped. This is problematic as we want to ship the compiler-cli as full-ESM. To achieve this we need to use a bundler and this breaks deep imports. We use a bundler for the compiler CLI because for full ESM compatibility, we would need to explicitly add the `.js` extension to all relative imports. This is very cumbersome and prone to mistakes so to mitigate this problem in a safe way, we bundle the compiler-cli. Note: Deep imports continue to exist for the language service as it bundles the compiler-cli. PR Close #43431
9 lines
No EOL
726 B
Markdown
9 lines
No EOL
726 B
Markdown
This is a directory defining the `@angular/compiler-cli/private` entry-point. The entry-point can be used to
|
|
expose code that is needed by other Angular framework packages, without having to expose code through the primary
|
|
entry-point.
|
|
|
|
The primary entry-point has a couple of downsides when it comes to cross-package imports:
|
|
* It exports various other things that will end up creating additional type dependencies. e.g. when
|
|
the Angular localize package relies on it, it might end up accidentally relying on `@types/node`.
|
|
* The primary entry-point has a larger build graph, slowing down local development as much more things
|
|
can invalidate the dependent targets. A smaller subset leads to faster incremental builds. |