Peut pm2 exécuter un "npm démarrer' script
Est-il un moyen pour les pm2 pour exécuter un mécanisme national de prévention script de démarrage ou avez-vous juste devez exécuter pm2 start app.js
Donc dans le développement
npm start
Alors en cours de production avec les pm2, vous devez exécuter quelque chose comme
pm2 start 'npm start'
Il y a un équivalent moyen de le faire dans forever
forever start -c "npm start" ./
Vous devez vous connecter pour publier un commentaire.
PM2 prend désormais en charge mnp début:
--name "app"
mais il suffit de le définir de mnp.npm start
dans le processus de fichier?"start": "cross-env NODE_ENV=production nodemon dist-prod/server.js"
--help
de lecture pour les pm2, mais ne pouvait pas trouver l'explication.npm
être substitué à un autre nœud de base de la corbeille de module installé à l'échelle mondiale, et est passé quelque soit les arguments qui module besoins après ` -- ` de la même façon?Ceux qui sont à l'aide d'un script de configuration comme un
.json
fichier pour exécuter les pm2 processus peut utilisernpm start
ou n'importe quel autre script comme celui -my-app-pm2.json
Alors simplement
Modifier - Pour traiter les cas d'utilisation lorsque vous avez cette configuration de script dans un répertoire parent et souhaitez lancer une application dans le sous-répertoire puis utilisez le
cwd
attribut.En supposant que notre application est dans le sous-répertoire
nested-app
par rapport à ce fichier de configuration puis -Plus en détail ici.
start
informations sur le script est dans l'un d'eux. Voir ce gist: gist.github.com/gianpaj/04c5680a8275616aac5e46374e07f673 Lorsque j'exécute ce qu'il ne sait pas oùnpm
devrait commencer à courir. Thxcwd
attribut. Vérifier mon édité réponse 🙂sudo pm2 start config.json
npm start
avecpm2
? quand j'ai ajouter un appel de cette autre affichera l'erreurOui. Utilisation
pm2 start npm --no-automation --name {app name} -- run {script name}
. Elle fonctionne. Le--no-automation
drapeau est-il parce que sans elle PM2 ne va pas redémarrer votre application quand il se bloque.J'ai écrit en shell script ci-dessous (nommé
start.sh
).Parce que mon
package.json
aprestart
option.Je tiens donc à exécuter
npm start
.Ensuite, démarrez
start.sh
par les pm2.startOrRestart
de commande.À utiliser
npm run
pm2 start npm --name "{app_name}" -- run {script_name}
Voir pour activer le clustering:
Qu'en pensez-vous?
-i 0
faire?Oui nous pouvons maintenant pm2 soutien mnp démarrer, - le nom de l'espèce nom de l'application.
Malheureusement pas de chance avec l'exécution de script
start:prod
.Commande
pm2 start npm -- run start:prod
accidentsMalheureusement, il semble que les pm2 ne supporte pas exactement la fonctionnalité demandée https://github.com/Unitech/PM2/issues/1317.
La solution proposée est d'utiliser un
ecosystem.json
fichier Mise en route avec le déploiement qui pourrait inclure des configurations de production et des environnements de dev. Toutefois, il est toujours à l'aide denpm start
pour l'amorçage de votre application.However, this is still using npm start to bootstrap your app.
Pouvez-vous réellement exécuternpm start
à l'aide depm2
?Maintenant, Vous pouvez utiliser après:
Suivre par https://github.com/Unitech/pm2/issues/1317#issuecomment-220955319
pouvez courir
si vous voulez déployer plusieurs serveurs
vous pouvez le faire. au lieu de pm2 commencer mnp -- start