Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to globally set the preserveWhitespaces option in Angular to false?

Tags:

angular

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?

like image 684
Lazar Ljubenović Avatar asked Sep 02 '17 22:09

Lazar Ljubenović


2 Answers

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.

like image 159
yurzui Avatar answered Oct 16 '22 15:10

yurzui


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)); 
like image 43
SUHAIL KC Avatar answered Oct 16 '22 16:10

SUHAIL KC