mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
eaf5b5856d
The options for `flatModuleId` and `flatModuleOutFile` had been removed in the CLI from generated libraries with https://github.com/angular/angular-cli/commit/718ee15b9a1d7b9d7ad520f25c67b8659059a33a. This has been done because `ng-packagr` (which is used to build the libraries) automatically set these options in-memory when it compiles the library. No migration has been created for this because there was no actual need to get rid of this. Keeping the options in the library `tsconfig` does not cause any problems unless the `tsconfig` is used outside of `ng-packagr`. This was not anticipated, but is now commonly done in `ng update` migrations. The `ng update` migrations try to create an instance of the `AngularCompilerProgram` by simply parsing the `tsconfig`. The migrations make the valid assumption that `tsconfig` files are not incomplete/invalid. They _definitely_ are in the file system though. It just works for libraries because `ng-packagr` in-memory completes the invalid `tsconfig` files, so that they can be passed to the `@angular/compiler-cli`. We can't have this logic in the `ng update` migrations because it's out-of-scope for individual migrations to distinguish between libraries and applications. Also it would be out-of-scope to parse the `ng-packagr` configuration and handle the tsconfig in-memory completion. As a workaround though, we can remove the flat-module bundle options in-memory when creating the compiler program. This is acceptable since we don't emit the program and the flat module bundles are not needed. Fixes #34985. PR Close #35824
Angular
The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.
Usage information and reference details can be found in Angular documentation.
License: MIT