node.js - scripts - ¿Puede pm2 ejecutar un script ''npm start''?
pm2 start npm start (12)
¿Hay alguna manera para que pm2 ejecute un script de inicio npm o solo tiene que ejecutar
pm2 start app.js
Entonces en desarrollo
npm start
Luego, en producción con pm2, ejecutarías algo como
pm2 start ''npm start''
Hay una forma equivalente de hacer esto para siempre
forever start -c "npm start" ./
Ahora, puede usar después de:
pm2 start npm --[space]start
Siga por https://github.com/Unitech/pm2/issues/1317#issuecomment-220955319
Aquellos que usan un script de configuración como un archivo
.json
para ejecutar el proceso pm2 pueden usar
npm start
o cualquier otro script como este:
my-app-pm2.json
{
"apps": [
{
"name": "my-app",
"script": "npm",
"args" : "start"
}
]
}
Entonces simplemente -
pm2 start my-app-pm2.json
Editar
: para manejar el caso de uso cuando tiene este script de configuración en un directorio principal y desea iniciar una aplicación en el subdirectorio, use el atributo
cwd
.
Suponiendo que nuestra aplicación se encuentre en el subdirectorio
nested-app
relación con este archivo de configuración, entonces:
{
"apps": [
{
"name": "my-nested-app",
"cwd": "./nested-app",
"script": "npm",
"args": "start"
}
]
}
Más detalles here .
Consulte para habilitar la agrupación en clúster:
pm2 start npm --name "AppName" -i 0 -- run start
¿Qué piensas?
Desafortunadamente no hubo suerte con el
start:prod
script en ejecución
start:prod
.
"scripts": {
"start:prod": "node index.js"
},
Comando
pm2 start npm -- run start:prod
bloquea
Desafortunadamente, parece que pm2 no admite la funcionalidad exacta que solicitó https://github.com/Unitech/PM2/issues/1317 .
La alternativa propuesta es utilizar un archivo
ecosystem.json
Introducción a la implementación
que podría incluir configuraciones para entornos de producción y desarrollo.
Sin embargo, esto todavía está usando
npm start
para
npm start
su aplicación.
Escribí el script de shell a continuación (llamado
start.sh
).
Porque mi
package.json
tiene la opción de
prestart
.
Entonces quiero ejecutar
npm start
.
#!/bin/bash
cd /path/to/project
npm start
Luego, comience
start.sh
por pm2.
pm2 start start.sh --name appNameYouLike
No olvides el espacio antes de comenzar
pm2 start npm -- start
entonces el comando correcto es:
pm2 start ./bin/www
PM2 ahora es compatible con npm start:
pm2 start npm -- start
Para usar
npm run
pm2 start npm --name "{app_name}" -- run {script_name}
Sí, ahora pm2 admite npm start, --name para el nombre de la aplicación de la especie.
pm2 start npm --name "app" -- start
Si.
Use
pm2 start npm --no-automation --name {app name} -- run {script name}
.
Funciona.
El indicador
--no-automation
está ahí
porque sin él PM2 no reiniciará su aplicación cuando se bloquee.
pm2 start npm -- start
puede correr
si desea implementar varios servidores, puede hacerlo. en lugar de pm2 start npm - start