L'application est gérée par
pm2 start app.js
ou
pm2 start config.json
Je veux déboguer mon application localement en utilisant node_inspector. J'ai ajouté l'argument debug
pm2 start --node-args="--debug=7000" app.js
Cela fonctionne bien, mais si je fournis config.json
au lieu du script app.js
, je ne sais pas comment passer des arguments concernant le débogage. Le morceau suivant de configuration ne fonctionne pas
{
"apps": [
{
"name": "myName",
"script": "app.js",
"args": "['--debug=7000']"
............
}
]
}
Alors, comment déboguer une application exécutée par pm2 et utilisant config?
Vous y êtes presque, utilisez node_args
au lieu de args
:
args
sont vos arguments de scriptnode_args
sont des arguments qui sont passés à l'exécutable du noeud
{
"name": "myName",
"script": "app.js",
"node_args": ["--debug=7000"]
}
Si quelqu'un a toujours des problèmes avec le paramètre de débogage après cela, dans certains cas, vous devez désactiver le mode cluster pour que le paramètre de débogage soit effectif.
Notez également que vous n'avez pas besoin des crochets dans la valeur node_args si vous transmettez tous les arguments en tant que chaîne unique.
[pm2 version 3.2.2]
Ce qui suit fonctionnerait si vous voulez attacher Vscode avec PM2.
Dans le fichier de l'écosystème, nomméosystos.config.js, ajoutez la ligne suivante sous applications.
node_args : ["--inspect"]
Ajouter ceci définirait automatiquement deux arguments de nœud lors de l'appel des scripts. Ils sont --inspect
, --inspect-port=9232
.
Ils peuvent être vus avec console.log(process.process.execArgv)
De même, si le nombre d'instances est> 1, l'argument ci-dessus continuerait à incrémenter ce numéro de port pour chaque autre instance de nœud sous ce pm2.
par exemple, pour la deuxième instance de noeud, pm2 transmettrait --inspect
, --inspect-port=9233
.
Dans le cas où vous définissez explicitement inspect-port sur une valeur, je vois ce qui suit sous la forme args --inspect
, --inspect-port=9200
, --inspect-port=9230
Et il ne semble pas utiliser le port que vous vouliez. Mais je pense que vu la nature de pm2, il vaut peut-être mieux ne pas utiliser un port spécifique.
J'espère que cela t'aides.