Angular builder that allows Terser (Uglify) customization
Custom Angular builder that allows Terser (Uglify) customization. It’s a sub-class of Angular’s default builder and it does a very small customization of its logic by extending final webpack config with your custom options for Terser.
This project is not maintained. Try https://github.com/just-jeb/angular-builders instead
Install
npm i -D angular-builder-custom-terser-options
For a builder compatible with Angular 7 run
npm i -D angular-builder-custom-terser-options@1
Add builders from this package to your angular.json
.
projects.yourProjectName.architect.build
to angular-builder-custom-terser-options:browser-custom-terser
projects.yourProjectName.architect.build.configurations.production.optimization
to true
projects.yourProjectName.architect.build.configurations.production.terserOptions
to an object with any minify options supported by Terser. You can find the list of available options here.projects.yourProjectName.architect.serve
to angular-builder-custom-terser-options:dev-server-custom-terser
{
// ... rest of the default config ,
"projects": {
"yourProjectName": {
"architect": {
"build": {
// Set our custom builder here
"builder": "angular-builder-custom-terser-options:browser-custom-terser",
"options": {
// Your default options. Leave it as is
},
"configurations": {
"production": {
// Add any options supported by Terser here
"terserOptions": {
"keep_classnames": true
},
// Enable optimization to enable Terser itself
"optimization": true
}
}
},
"serve": {
// Set our custom builder here
"builder": "angular-builder-custom-terser-options:dev-server-custom-terser"
// Rest of the config. Leave it as is
}
}
}
}
}
If you set target
in your tsconfig.json to es6
or higher, set your terserOptions
to { "keep_classnames": true }
.
If you set target
in your tsconfig.json to es5
, set your terserOptions
to { "keep_fnames": true }
.