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.
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.