如何使用 PhpStorm / WebStorm 连接到远程 nodejs 调试会话?
Posted
技术标签:
【中文标题】如何使用 PhpStorm / WebStorm 连接到远程 nodejs 调试会话?【英文标题】:How to connect to a remote nodejs debug session using PhpStorm / WebStorm? 【发布时间】:2019-07-25 16:56:31 【问题描述】:似乎有一个similar question,因为它是inspect
的前身,我想使用inspect
。
我创建了一个基本的 docker-compose 堆栈,从中运行我的 nodejs 应用程序。我想监听调试器会话并在本地 WebStorm 中调试我的 javascript 代码。
我通过
进入容器docker exec -it my_container bash
我通过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+ 和其他 JetBrains IDE 创建一个新的 Node.js 调试配置并点击调试。 --inspect 将由 Node.js 7+ 的默认设置。禁用取消选中 IDE 注册表中的 js.debugger.node.use.inspect。
我想从我的主机 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 调试器。
【问题讨论】:
【参考方案1】:您必须使用node --inspect-brk=0.0.0.0:9229
启动您的应用程序(0.0.0.0
是必需的,因为 Node.js 默认只绑定到本地主机),然后使用Attach to Node.js/Chrome 运行配置来附加调试器。 端口应设置为9229
【讨论】:
【参考方案2】:这是一种解决方法,因为我仍然非常想使用 WebStorm 的调试器,这就是为什么这不是我的解决方案,但至少提供了一种调试方法:
对于chrome的开发工具,可以使用:
node --inspect-brk=0.0.0.0:9229 ./cli.js start mytask
它将显示在:
chrome://inspect/#devices
您可以通过脚本点击检查和调试。
--inspect-brk
将在第一行中断,我必须使用 ip 0.0.0.0
让开发工具来获取它。
【讨论】:
以上是关于如何使用 PhpStorm / WebStorm 连接到远程 nodejs 调试会话?的主要内容,如果未能解决你的问题,请参考以下文章
如何将文本与 phpstorm 或 webstorm 中的特定字符对齐?
TypeScript 自动导入中的 WebStorm/PhpStorm 双引号
PhpStorm WebStorm angular-cli 项目;如何关闭棉绒