应用程序运行
pm2 start app.js
Run Code Online (Sandbox Code Playgroud)
要么
pm2 start config.json
Run Code Online (Sandbox Code Playgroud)
我想使用node_inspector在本地调试我的应用程序.我加debug的说法
pm2 start --node-args="--debug=7000" app.js
Run Code Online (Sandbox Code Playgroud)
它工作正常,但如果我提供config.json而不是脚本,app.js我不知道如何传递有关调试的参数.下一个配置不起作用
{
"apps": [
{
"name": "myName",
"script": "app.js",
"args": "['--debug=7000']"
............
}
]
}
Run Code Online (Sandbox Code Playgroud)
那么如何调试由pm2运行并使用config的应用程序?
soy*_*uka 41
你快到了,用node_args而不是args:
args 是你的脚本参数node_args 是传递给节点可执行文件的参数
{
"name": "myName",
"script": "app.js",
"node_args": ["--debug=7000"]
}
Run Code Online (Sandbox Code Playgroud)如果此后仍有人遇到调试设置问题,则在某些情况下,您必须禁用群集模式才能使调试设置生效.
另请注意,如果将所有args作为单个字符串传递,则不需要node_args值中的括号.
小智 7
[pm2 版本 3.2.2]
如果您想将 Vscode 与 PM2 连接,以下方法将起作用。
在生态系统文件生态系统.config.js中,在apps下添加以下行。
node_args : ["--inspect"]
添加它会在调用脚本时自动设置两个节点参数。他们是--inspect,--inspect-port=9232。
他们可以看到 console.log(process.process.execArgv)
此外,如果实例数 > 1,则上述参数将为此 pm2 下的每个其他节点实例不断增加此端口号。
例如,对于第二个节点实例 pm2 将通过--inspect, --inspect-port=9233。
如果您明确将检查端口设置为一个值,我会将以下内容视为 args
--inspect, --inspect-port=9200,--inspect-port=9230
它似乎没有使用您想要的端口。但我认为鉴于 pm2 的性质,不使用特定端口可能会更好。
希望这可以帮助。
另一种方法是
env: {
NODE_OPTIONS: '--inspect'
}
Run Code Online (Sandbox Code Playgroud)
在您的 Ecosystem.config.js 文件中。