使用 WebStorm 设置远程节点调试的问题

Posted

技术标签:

【中文标题】使用 WebStorm 设置远程节点调试的问题【英文标题】:Issues setting up remote node debugging with WebStorm 【发布时间】:2018-11-13 07:54:17 【问题描述】:

我已经用 pm2 在我的服务器上启动了我的应用程序:

pm2 start /path/lib/start-server.js --name="cdl-debug" -- --inspect

相当于node /path/lib/start-server.js --inspect

应用程序启动并运行,虽然我在日志中没有看到任何关于任何调试的通知,如 here 解释的那样

我已经在防火墙中打开了端口 9229,并使用Attach to Node.js/Chrome 设置了我的 WebStorm 调试配置,如下所示:

然后,当我运行调试器时,它会尝试连接一段时间,最后失败并显示以下消息:Connection timed out. No further information.

还有什么我应该做的吗? WebStorm documentation 没有提及服务器上所需的设置。

【问题讨论】:

【参考方案1】:

运行node /path/lib/start-server.js --inspect 时,您将--inspect 传递给您的应用程序,而不是Node.js。结果,调试器没有启动。您需要确保将 --inspect-brk 传递给 Node.js 以调试您的应用程序:

node --inspect-brk /path/lib/start-server.js

你可以在pm2 process.json中指定--inspect-brk,比如

"node_args": [
      "--inspect-brk=7000"
    ]

然后使用pm2 start process.json启动您的应用

【讨论】:

感谢您可能解决了部分问题。我现在在日志中看到调试器已启动。然而,当我尝试启动调试器时,WebStorm 仍然给出相同的连接错误 您在哪个端口上启动了调试器?它应该与运行配置中指定的端口匹配。即,使用--inspect-brk=7000时,必须在运行配置中指定端口7000

以上是关于使用 WebStorm 设置远程节点调试的问题的主要内容,如果未能解决你的问题,请参考以下文章

Webstorm- Nodemon + Typescript + Docker - 调试器已连接但断点不起作用

无法从 WebStorm 调试远程 docker node.js 应用程序

在 Docker 中远程调试节点应用程序

Webstorm远程调试+调试时编辑本地javascript文件

调试 Node.js 应用程序时,WebStorm 在错误的文件上停止

如何使用源映射远程调试 Node.js 应用程序(使用 WebStorm)