feat(@schematics/angular): use TypeScript module preserve option for new projects #28303
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Newly generated projects will now use the
preserve
value for themodule
option within the TypeScript configuration for the workspace (tsconfig.json
). This value was added in TypeScript 5.4 and is intended to model the behavior of modern bundlers such as used in the defaultapplication
builder. This option value also has the advantage of automatically enablingesModuleInterop
and settingmoduleResolution
tobundler
which are the currently generated values for new projects. This allows explicit use of these options to be removed from the generated file. TheresolveJsonModule
option is also enabled withpreserve
which removes the need for developers to manually add it if JSON files are imported. JSON file imports are fully support including unused property treeshaking with named imports in theapplication
builder.Additional details on the option can be found here:
https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-4.html#support-for-require-calls-in---moduleresolution-bundler-and---module-preserve