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 键。添加上面显示的其他属性(optimizationoutputHashing 等...)解决了我的问题。