NPM est jeune, n'est pas super fiable lors de l'installation des paquets et a des logs peu bavards. Il est donc à éviter en production, surtout quand la personne qui fait la MEP ne connaît pas cet outil. De plus, on pourrait raccourcir le temps ou le site est en maintenance.
Je vois plusieurs solutions qui pourraient être mise en place :
- Le build se fait avant l'arrêt du serveur Django, dans un dossier à part qui est copié lors de la MEP.
On aurait donc quelque chose comme :
1 2 3 4 5 6 7 | Build du front dans /dist Vérification du build -| Arrêt du serveur Django / Mise en maintenance Opérations diverses Copie du /dist dans le /static (actuellement je crois que /static n'est qu'un raccourci vers /dist) Opérations diverses |-> Redémarrage du serveur Django / Arrêt de la maintenance |
- Le build se fait en-dehors du serveur de production et est archivé (il faut simplement lancer la commande
npm run gulp -- build
et faire une archive dudist/
). Puis cette archive est importé lors de la MEP puis décompressée. - Le build est versionné dans notre dépôt Git donc le serveur n'a rien à faire.
- Les paquets requis pour le build sont versionnés dans notre dépôt Git donc le serveur n'a pas de problème avec l'installation des paquets.
Il y a sûrement d'autres façons de faire, n'hésitez pas à en proposer !
Situphen
+0
-0