tutorial see name ecosystems delete custom cluster app pm2

see - Aplicación de depuración que se ejecuta utilizando pm2



pm2 tutorial (2)

La aplicación está dirigida por

pm2 start app.js

o

pm2 start config.json

Quiero depurar mi aplicación localmente usando node_inspector. debug argumento de debug

pm2 start --node-args="--debug=7000" app.js

Funciona bien, pero si proporciono config.json lugar de script app.js , no sé cómo pasar argumentos sobre la depuración. La siguiente pieza de configuración no funciona

{ "apps": [ { "name": "myName", "script": "app.js", "args": "[''--debug=7000'']" ............ } ] }

Entonces, ¿cómo depurar la aplicación que se ejecuta mediante pm2 y usando config?


Ya casi estás ahí, usa node_args lugar de args :

  • args son sus argumentos de script
  • node_args son argumentos que se pasan al ejecutable del nodo.

    { "name": "myName", "script": "app.js", "node_args": ["--debug=7000"] }

PM2 esquema json .

Si alguien sigue teniendo problemas con la configuración de depuración después de esto, en algunos casos debe desactivar el modo de clúster para que la configuración de depuración sea efectiva.

También tenga en cuenta que no necesita los corchetes en el valor de node_args si pasa todos los argumentos como una sola cadena.


[pm2 version 3.2.2]

Lo siguiente funcionaría si desea adjuntar Vscode con PM2.

En el archivo de ecosistema que es ecosistema.config.js, agregue la siguiente línea en aplicaciones.

node_args : ["--inspect"]

Agregar esto establecería automáticamente dos argumentos de nodo al invocar los scripts. Son --inspect , --inspect-port=9232 .

Se pueden ver con console.log(process.process.execArgv)

Además, si el número de instancias es> 1, entonces el argumento anterior continuará incrementando este número de puerto para cada otra instancia de nodo bajo este pm2.

por ejemplo, para la segunda instancia de nodo, pm2 pasaría --inspect , --inspect-port=9233 .

En caso de que establezca explícitamente el puerto de inspección en un valor, veo lo siguiente como --inspect , --inspect-port=9200 , --inspect-port=9230

Y no parece usar el puerto que querías. Pero creo que dada la naturaleza de pm2, puede ser mejor no usar un puerto específico.

Espero que esto ayude.