J'apprends actuellement Angular 2 avec TypeScript et j'ai développé une petite application basée sur le projet angular-seed ( angular-seed ). J'ai construit l'application pour la production fins et obtenu le dossier dist prêt à être déployé contenant mes fichiers bundle comme ceci:
dist/
main.bundle.js
main.map
polyfills.bundle.js
polyfills.map
vendor.bundle.js
vendor.map
Cependant, pour plus de fraîcheur, je n'ai aucune idée de comment le déployer maintenant sur mon serveur EC2. J'ai lu que je dois configurer le serveur Nginx pour servir mon fichier statique mais dois-je le configurer en particulier pour travailler avec mes fichiers groupés?
Excusez mes erreurs, le cas échéant. Merci beaucoup d'avance!
Tu es sur la bonne piste.....
Installez simplement le nginx sur votre EC2. Dans mon cas, j'avais un Linux Ubuntu 14.04 installé sur "Digital Ocean".
J'ai d'abord mis à jour les listes de paquets apt-get:
Sudo apt-get update
Installez ensuite Nginx en utilisant apt-get:
Sudo apt-get install nginx
Ouvrez ensuite le fichier de configuration par défaut du bloc serveur pour le modifier:
Sudo vi /etc/nginx/sites-available/default
Supprimez tout dans ce fichier de configuration et collez le contenu suivant:
server {
listen 80 default_server;
root /path/dist-nginx;
index index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ =404;
}
}
Pour rendre les modifications actives, redémarrez le serveur Web nginx:
Sudo service nginx restart
Copiez ensuite index.html et les fichiers de l'ensemble dans /path/dist-nginx
sur votre serveur et vous êtes opérationnel.
Un moyen plus rapide de déployer est le suivant:
1. Installez nginx comme mentionné par Herman.
2. Copiez vos fichiers dist/* dans/var/www/html/sans déranger/etc/nginx/sites-available/default.
Sudo cp/votre/chemin/vers/dist/*/var/www/html /
3. Redémarrez nginx:
Sudo systemctl redémarrer nginx
Si quelqu'un éprouve toujours des difficultés avec la configuration de production de angular 2/4/5 app + Nginx, alors voici la solution complète:
Supposons que vous souhaitiez déployer votre angular sur l'hôte: http://example.com
et PORT: 8080
Remarque - L'hôte et le PORT peuvent être différents dans votre cas.
Assurez-vous que vous avez <base href="/">
dans votre balise head index.html.
Tout d'abord, accédez à votre chemin angular repo (c'est-à-dire/home/user/helloWorld) sur votre machine.
Créez ensuite/dist pour votre serveur de production à l'aide de la commande suivante:
ng build --prod --base-href http://example.com:808
Maintenant, copiez le dossier/dist (c'est-à-dire/home/user/helloWorld/dist) depuis le repo de votre machine angular repo sur la machine distante où vous souhaitez héberger votre serveur de production).
Connectez-vous maintenant à votre serveur distant et ajoutez la configuration de serveur nginx suivante.
server {
listen 8080;
server_name http://example.com;
root /path/to/your/dist/location;
# eg. root /home/admin/helloWorld/dist
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
# This will allow you to refresh page in your angular app. Which will not give error 404.
}
}
Redémarrez maintenant nginx.
C'est ça !! Vous pouvez maintenant accéder à votre application angular sur http://example.com:808
J'espère que ce sera utile.
J'utilise à la place le --- angular CLI pour déployer en production et c'est très facile à faire. Vous pouvez déployer en pré-production c'est-à-dire, ou en production de cette façon:
ng build --env = pre --output-path = build/pre /
ng build --env = prod --output-path = build/prod /