ng build --prod n'a PAS minify / uglify / supprimer des commentaires depuis Angulaire de la CLI 6

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

si j'ouvre le fichier vendor.js qui en résulte, je vois clairement que le code n'est pas minifié et les commentaires ne sont pas supprimés.

1
demandé sur Shin 2018-08-20 11:30:00

1 réponses

la question Est dans le dossier angular.json .

sous la touche projects.MY_PROJECT_NAME.architect.build.configurations.production , je manquais toutes les options qui viennent normalement par défaut dans la configuration production quand vous créez un nouveau projet angulaire.

voici à quoi devrait ressembler la configuration production pour corriger 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 mise à jour des versions précédentes de CLI angulaire, mon production la configuration n'avait que la clé fileReplacements . Ajouter les autres propriétés indiquées ci-dessus ( optimization , outputHashing , etc...) a résolu le problème pour moi.

5
répondu Shin 2018-08-20 08:30:00