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"] }
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.