ng build --prod 自 Angular CLI 6 起不会缩小/丑化/删除注释
ng build --prod does NOT minify / uglify / remove comments since Angular CLI 6
由于我已将我的 Angular 应用程序升级为使用 Angular CLI 版本 6.x
,为生产编译它(像往常一样使用 ng build --prod
)不会产生缩小的js。这导致 vendor.js
大小非常大(在我的例子中几乎是 10 MB)。
如果我打开生成的 vendor.js
文件,我可以清楚地看到代码没有缩小,注释也没有被删除。
问题在 angular.json
文件中。
在键 projects.MY_PROJECT_NAME.architect.build.configurations.production
下,当您创建一个新的 angular 项目时,我遗漏了通常在 production
配置中默认出现的所有选项。
为了解决问题,production
配置应如下所示:
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true
},
由于某些原因,从以前的 Angular CLI 版本升级后,我的 production
配置只有 fileReplacements
键。添加上面显示的其他属性(optimization
、outputHashing
等...)解决了我的问题。
由于我已将我的 Angular 应用程序升级为使用 Angular CLI 版本 6.x
,为生产编译它(像往常一样使用 ng build --prod
)不会产生缩小的js。这导致 vendor.js
大小非常大(在我的例子中几乎是 10 MB)。
如果我打开生成的 vendor.js
文件,我可以清楚地看到代码没有缩小,注释也没有被删除。
问题在 angular.json
文件中。
在键 projects.MY_PROJECT_NAME.architect.build.configurations.production
下,当您创建一个新的 angular 项目时,我遗漏了通常在 production
配置中默认出现的所有选项。
为了解决问题,production
配置应如下所示:
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true
},
由于某些原因,从以前的 Angular CLI 版本升级后,我的 production
配置只有 fileReplacements
键。添加上面显示的其他属性(optimization
、outputHashing
等...)解决了我的问题。