如何使用 PhpStorm / WebStorm 连接到远程 nodejs 调试会话?

How to connect to a remote nodejs debug session using PhpStorm / WebStorm?

inspect的前身似乎有一个similar question,我想用inspect

我已经创建了一个基本的 docker-compose 堆栈,我从中 运行 我的 nodejs 应用程序。我想监听调试器会话并在我的本地 WebStorm 中调试我的 JavaScript 代码。

我通过

进入容器
docker exec -it my_container bash

然后我使用调试器 运行ning 通过 inspect:

调用我的 nodejs 脚本
node --inspect ./cli.js start mytask
Debugger listening on ws://127.0.0.1:9229/81006264-163c-40d7-bd75-64c5e4fca618
For help see https://nodejs.org/en/docs/inspector

链接的帮助对我没有帮助,因为它假定我想将 inspect 用于本地 运行:

JetBrains WebStorm 2017.1+ and other JetBrains IDEs Create a new Node.js debug configuration and hit Debug. --inspect will be used by default for Node.js 7+. To disable uncheck js.debugger.node.use.inspect in the IDE Registry.

我想从我的主机 WebStorm 附加到 docker 容器内的 运行。

所以当我 运行 脚本时,它只是完成而没有遇到任何断点。

我想我必须听调试器,但我不知道如何。

我想让我的本地 WebStorm 连接到 nodejs 调试器。我希望能够在 WebStorm 中进行调试,就好像我通过 WebStorm 本身拥有 运行 nodejs 脚本一样。

我尝试深入研究 docs 但我不确定如何遵循指南。

我已经在 docker-compose.yml:

中将默认调试端口 9229 公开到我的本地计算机
version: "3"
services:
    my_container:
        build: .
        command: "bash"
        hostname: my_container
        tty: true
        environment:
            TERM: xterm
        ports:
            - "9229:9229"

我不知道如何在 WebStorm 中监听 nodejs 调试器。

这是一种解决方法,因为我仍然非常想使用 WebStorm 的调试器,这就是为什么这不是我的解决方案但至少提供了一种调试方法的原因:

对于chrome的开发工具,您可以使用:

node --inspect-brk=0.0.0.0:9229 ./cli.js start mytask

它将显示在:

chrome://inspect/#devices

可以通过脚本点击检查调试

--inspect-brk 会在第一行中断,我必须使用 ip 0.0.0.0 让开发工具获取它。

您必须使用 node --inspect-brk=0.0.0.0:9229 启动您的应用(需要 0.0.0.0,因为 Node.js 默认仅绑定到本地主机),然后使用 Attach to Node.js/Chrome 运行 配置附加调试器。 端口 应设置为 9229