1
votes

Comment publier des fichiers angulaires en mode production?

Je me demande depuis un moment maintenant pourquoi mon client avait toujours besoin de vider le cache de son navigateur pour mon site Web. Il s'avère que les fichiers angulaires ne sont pas construits correctement. Ou pour être plus précis, ils sont compilés, mais leur nom n'est pas haché, ce qui donne les mêmes noms que les versions précédentes et donc le navigateur pense que rien n'a changé.

Voici mon .csproj:

< pre> XXX

Il s'avère que "npm run build --prod" ne s'exécute pas car angular n'est pas en mode production. Comment faire en sorte que ma production publie les paramètres dans Visual Studio en version angulaire en mode production, tandis que mon serveur de développement reçoit une version de développement?


0 commentaires

4 Réponses :


2
votes

Si vous regardez dans votre fichier package.json , la commande build exécute ng build . Même si vous avez spécifié --prod , les options ne se traduisent pas par la commande dans package.json . Voici quelques options.

Dans votre fichier package.json , vous pouvez créer une autre commande pour la production.

"scripts": {
  ...
  "build": "ng build",
  "build-prod": "ng build --prod"
  ...  
},

Ensuite, vous pouvez exécuter npm run build-prod . Ou comme deuxième option, vous pouvez simplement exécuter la commande angular-cli ng build --prod


0 commentaires

5
votes

Remplacez la commande par npm run build - --prod .
Cela passe le paramètre prod à la commande sous-jacente ng build et donc la commande correcte ( ng build --prod ) sera exécutée.


0 commentaires

0
votes

Exécutez la commande ng build --prod


1 commentaires

Indépendamment de l'exactitude de la réponse, a passé un peu de temps et quelques mots à expliquer.



0
votes

J'ai dû utiliser une combinaison de la réponse de Jason White, avec SNIPEZ, pour que la mienne fonctionne correctement.

Ajout de l'entrée

<Exec WorkingDirectory="$(SpaRoot)" Command="npm run build-prod" />

à package.json , ainsi que le changement du fichier .csproj en

"build-prod": "ng build --prod" 

a fonctionné pour moi


0 commentaires