How to globally set the preserveWhitespaces option in Angular to false?
Since one of the beta releases of version 5, Angular has a new compiler option, preserveWhitespaces
. The property is mentioned in CompilerOptions
type alias in the docs. The docs for the Component
decorator describe its usage, and mention that the default in version 5 is true
(no whitespace removal).
I've seen the PR, but from what I can tell from some tests is that the only way to use it is to supply preserveWhitespace
to every @Component
metadata. How can I set it to false
globally, for all components, and then set it to true
only for some components?
This will be false by default starting with angular 6
- https://github.com/angular/angular/issues/22027
For now, in JIT mode we can set it as part of CompileOptions:
main.ts
platformBrowserDynamic().bootstrapModule(AppModule, { preserveWhitespaces: false });
For aot we have to add this option to
tsconfig.app.json
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"baseUrl": "./",
"module": "es2015",
"types": []
},
"exclude": [
"test.ts",
"**/*.spec.ts"
],
"angularCompilerOptions": {
"preserveWhitespaces": false
}
}
[email protected] example where you can find the corresponding commit
There is also feature request in angular-cli repo.
In order to set angular compiler options in AOT compile (ng serve --aot, ng build --prod) you must alter the tsconfig.app.json to include:
"angularCompilerOptions": {
"preserveWhitespaces": true
},
In order to set angular compiler options in JIT compile (ng serve) you must alter main.ts specifically the bootstrapModule call:
platformBrowserDynamic().bootstrapModule(AppModule, {
preserveWhitespaces: true
})
.catch(err => console.log(err));