将WebStorm连接到远程node.js调试会话

Ben*_*Ben 20 debugging node.js webstorm vagrant

我正在Oracle VirtualBox中的Linux VM中运行Node.js应用程序.端口5858在虚拟机上转发到端口5858上的本地主机.

我在主机操作系统(Windows 7)上运行WebStorm.在WebStorm中,我单击Run >> Edit Configurations....I然后单击添加按钮(加号)并选择Node.js remote debug.然后我输入配置的名称,并将主机保留为127.0.0.1和端口为5858.我单击OK,确保我的节点应用程序正在带有--debug标志的VM上运行.

然后,我单击WebStorm工具栏中的错误图标,调试器出现在WebStorm IDE的底部.

如何确认连接成功?断点不起作用,WebStorm中的控制台保持为空(当信息发送到Linux VM上的控制台时).任何人都可以建议仍然需要做什么来使远程调试会话工作?

2up*_*dia 21

而不仅仅是

$ vagrant ssh
Run Code Online (Sandbox Code Playgroud)

尝试

$ vagrant ssh -- -L 5858:127.0.0.1:5858
Run Code Online (Sandbox Code Playgroud)

我也config.vm.network :forwarded_port, guest: 5858, host: 5858从我的线上删除Vagrantfile并做了一个$ vagrant reload.

在你的流浪盒中运行

$ node --debug-brk path/to/file.js
Run Code Online (Sandbox Code Playgroud)

设置Node.js远程调试运行/调试配置,默认设置很好(主机127.0.0.1和端口5858).

从您的HOST机器运行以下操作,而不是您的流浪盒.

$ telnet 127.0.0.1 5858
Run Code Online (Sandbox Code Playgroud)

你应该得到像这样的回复

Type: connect
V8-Version: 3.14.5.9
Protocol-Version: 1
Embedding-Host: node v0.10.28
Content-Length: 0
Run Code Online (Sandbox Code Playgroud)

如果你没有,那么端口前进有问题.您可以在主机端尝试不同的端口,并将先前从端口5858设置的webstorm运行/调试配置更新到新端口.

现在运行NodeJS调试配置.它应该立即拿起文件,你就可以调试它.

我的基础是PHPStorm,但应该是一样的.我假设只要你安装了NodeJS插件,它就可以在所有基于IntelliJ的IDE上运行.


Dam*_*zyk 16

1)从WebStorm手册:

当要在物理远程主机上运行调试的应用程序时,您需要运行代理或任何其他确保Node.js服务器上的端口转发的软件.这是必要的,因为调试端口只能在localhost网络接口上打开.无法从另一台计算机访问localhost网络接口,因此WebStorm在启动调试会话时无法连接到该网络接口.

2)VM上的localhost与主机上的localhost不同(听起来很奇怪).

3)V8调试器正在侦听localhost

解:

您可以将ssh代理设置为Linux VM:ssh -L 5858:127.0.0.1:5858 <vm_user>@<vm_ip> -N在这里您可以找到答案如何在Windows上执行 - > stackoverflow 如果您将执行上述操作,您在WebStorm中的调试配置将是主机:127.0.0.1端口:5858

您可以通过选中Debugger选项卡和Variables面板来检查WebStorm是否已连接到远程调试会话.无法连接,连接


nic*_*o82 5

这是我在Linux Debian VM中执行的操作:

安装平衡器

sudo apt-get install balance -y

在平衡器中创建路由以将5858端口重新路由到5859

balance 5859 127.0.0.1:5858

启动你的应用

node --debug app.js

现在您可以从虚拟机外部的端口5859上访问它