Output paths that use the locale within a locale specific configuration will now be automatically removed. This will prevent the potential for the migrated configuration to generate an output path with double locale segments.
This fixes warnings such as the below;
```
WARNING in /test-update/src/environments/environment.prod.ts is part of the TypeScript compilation but it's unused.
Add only entry points to the 'files' or 'include' properties in your tsconfig.
```
When the previous generated add was in VE.
Angular will only support TS 3.6+ on version 9, and older versions of `@types/node` are incompatible with it and will cause all builds to fail.
Related to https://github.com/angular/angular/pull/33250
`@angular/pwa` is not needed as a dependency. This is because the pwa package is a schematic and is only used once when adding pwa capabilities to your application. After that, this package is not used anymore.
Closes#15764
This migration will update current projects by adding the `i18n` project level option and add `localize` option in the server and browser builder configurations when both `i18nLocale` and `i18nFile` are defined.
The optimizations are suggested to;
1) disables ngDevMode via terser
2) helps with cold server starts the same way as client by lowering JS parse times
With this change we remove the requirement to add tsickle as a dependency when having a workspace library.
Since the CTOR downlevel transformer which was previously provided via tsickle is now in ng-packagr version 5.5.1+ We migrate existing libraries to remove the need for tsickle.
Update the `main.server.ts` file by adding exports to `renderModule` and `renderModuleFactory` which are now required for Universal and App-Shell for Ivy and `bundleDependencies`.
This migration updates the current tsconfig for the applications in two ways.
1) removes `enableIvy: true` option since it's by default true.
2) Amends the files/exclude/include options to only include files that are needed in the compilation.
In the CLI `UpdateRecorder` methods such as `insertLeft`, `remove` etc.. accepts positions which are not offset by a BOM. This is because when a file has a BOM a different recorder will be used https://github.com/angular/angular-cli/blob/master/packages/angular_devkit/schematics/src/tree/recorder.ts#L72 which caters for an addition offset/delta.
The main reason for this is that when a developer is writing a schematic they shouldn't need to compute the offset based if a file has a BOM or not and is handled out of the box.
Example
```ts
recorder.insertLeft(5, 'true');
```
However this is unfortunate in the case if a ts SourceFile is used and one uses `getWidth` and `getStart` method they will already be offset by 1, which at the end it results in a double offset and hence the problem.
Fixes#14551
Replacment of line endings should only happen to increase the hash matches as otherwise the recorder will fail to update the correct positions
Fixes#14443