web-dev-qa-db-fra.com

ng build --prod ne minimise / uglifie / supprime pas les commentaires depuis Angular CLI 6

Depuis que j'ai mis à niveau mon Angular app pour utiliser Angular CLI version 6.x, en le compilant pour la production (en utilisant ng build --prod, comme d'habitude) ne produit pas de js minifié. Ce résultat en très gros vendor.js taille (dans mon cas est presque 10 Mo).

Si j'ouvre le vendor.js fichier, je peux clairement voir que le code n'est pas minifié et les commentaires ne sont pas supprimés.

7
Francesco Borzi

Le problème est dans angular.json fichier.

Sous la touche projects.MY_PROJECT_NAME.architect.build.configurations.production, Il me manquait toutes les options qui viennent normalement par défaut dans la configuration production lorsque vous créez un nouveau projet angular.

Voici à quoi devrait ressembler la configuration production pour résoudre le problème:

"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
},

Pour certaines raisons, après la mise à niveau à partir des versions précédentes de la CLI Angular CLI, ma configuration production n'avait que la clé fileReplacements. L'ajout des autres propriétés indiquées ci-dessus (optimization, outputHashing, etc ...) a résolu le problème pour moi.

10
Francesco Borzi