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
726 B
726 B
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.