Je crée une application Web avec Angular 2 et Firebase, Je souhaite activer le mode de production.
main.ts
if (environment.production) {
enableProdMode();
}
environnement.ts
export const environment = {
production: true
};
environment.prod.ts
export const environment = {
production: true
};
Ensuite, j'essaie de construire --prod; Servir, mais ne fonctionne toujours pas.
Merci d'avance.
ng build --prod
créera des artefacts de construction dans le dossier /dist
- vous devez placer ces fichiers sur un serveur Web différent (c'est-à-dire que vous n'utilisez pas ng serve après cela).
Si vous souhaitez simplement exécuter votre application à l'aide de ng serve
mais en mode de production, , Utilisez:
ng serve --prod
Modifier
Je ne semble pas bien expliquer cela. Votre demande consiste à "activer le mode de production". Vous avez deux façons de le faire, selon ce que vous essayez de faire.
Si vous souhaitez utiliser le serveur de développement angular-cli pour exécuter votre application en mode production afin de vérifier si ce dernier fonctionne correctement, utilisez:
ng serve --prod
Si, toutefois, vous êtes prêt à déployer votre application sur un serveur Web de production, le processus se déroule en deux étapes:
générer la version prête à la production de votre application à l'aide de: ng build --prod
copiez la sortie du dossier /dist
sur votre serveur Web de production
Notez que je ne fais pas les deux. J'utilise soit ng build
, soit ng serve
, en fonction de ce que j'essaie d'accomplir.
Vous devriez réessayer avec ng run build --prod
ou npm run build
as moi, dans mon fichier package.json, le script de paramétrage est comme ça
"scripts":{
"ng": "ng",
"publish": "ng build --prod",
"start": "ng serve --Host 0.0.0.0 --port 4200",
"hmr": "ng serve --Host 0.0.0.0 --port 4200 4201 --hmr -e=hmr",
"test": "ng test",
"pree2e": "webdriver-manager update --standalone false --gecko false",
"e2e": "protractor"},..
et alors oui, quand je veux construire (publier) mon projet angulaire, j'ai utilisé la commande npm run publish
. Si vous voulez changer "build"
au lieu de "publish"
, vous devez utiliser comme "npm run build"
J'ai observé cela dans angular-cli 1.0.0-beta.28.3
. dist
disparaît le ng-serve
. Si vous voulez conserver la construction, essayez ng build --output-path=last-build/
et jetez un coup d'œil à ce problème .
Mais le fait est que vous n'avez pas besoin de faire un ng serve --prod
après avoir créé le build
. Comme @snorkpete le dit, veuillez copier le dossier dist
après avoir créé le build sur votre serveur Web. Et votre serveur Web se chargera de l'exécution de l'application. Remeber, you will have to create a virtual Host for this
. Mais si vous voulez simplement l'exécuter sur votre ordinateur local et que vous voulez le webpack
live, il suffit de faire ng serve --prod
, un live webpack
n'a rien à voir avec le dist
que vous avez.
ng servir --prod n'a pas fonctionné pour moi.
Cela a fonctionné d'ailleurs :)
ng serve --configuration=production
il crée un serveur de production de test qui fonctionne de la même manière que sur le serveur déployé. J'ai essayé ce test avec environment.js (toutes les autres solutions n'ont pas fonctionné pour moi)
Vous pouvez suivre cet (Devenir un Angular Environmentalist) pour en savoir plus sur Angular environnements