将WebStorm连接到远程的node.jsdebugging会话
我在Oracle VirtualBox的Linux VM中运行Node.js应用程序。 VM上的端口5858
被转发到本地主机上的端口5858
。
我在主机操作系统(Windows 7)上运行WebStorm。 在WebStorm中,单击Run >> Edit Configurations....
然后单击添加button(加号)并selectNode.js remote debug
。 然后inputconfiguration的名称,并将主机保留为127.0.0.1
,端口号为5858
。 我点击OK
,并确保我的节点应用程序正在运行在虚拟机与--debug
标志。
然后点击WebStorm工具栏中的错误图标,debugging器出现在WebStorm IDE的底部。
如何确认连接成功? 断点不起作用,WebStorm中的控制台保持为空(当信息发送到Linux VM上的控制台时)。 任何人都可以build议还需要做什么,以获得远程debugging会话工作?
而不是仅仅
$ vagrant ssh
尝试
$ vagrant ssh -- -L 5858:127.0.0.1:5858
我也从我的Vagrantfile
删除了config.vm.network :forwarded_port, guest: 5858, host: 5858
这个行config.vm.network :forwarded_port, guest: 5858, host: 5858
并做了$ vagrant reload
。
在你的stream浪箱里跑
$ node --debug-brk path/to/file.js
设置一个Node.js远程debugging运行/debuggingconfiguration,默认是好的(主机127.0.0.1和端口5858)。
从你的HOST机器运行以下,而不是你的stream浪箱。
$ telnet 127.0.0.1 5858
你应该得到一个回应
Type: connect V8-Version: 3.14.5.9 Protocol-Version: 1 Embedding-Host: node v0.10.28 Content-Length: 0
如果你不这样做,那么端口有问题。 您可以在主机端尝试一个不同的端口,并更新之前从端口5858设置到新端口的webstorm运行/debuggingconfiguration。
现在运行NodeJSdebuggingconfiguration。 它应该立即拿起文件,你就可以debugging它。
我基于PHPStorm的步骤,但它应该是一样的。 我假设它可以在所有基于IntelliJ的IDE上工作,只要你安装了NodeJS插件。
1)从WebStorm手册:
当要debugging的应用程序在物理远程主机上运行时,需要运行代理或任何其他确保在Node.js服务器上进行端口转发的软件。 这是必要的,因为debugging端口只能在本地主机networking接口上打开。 本地主机networking接口不能从另一台机器访问,因此在启动debugging会话时WebStorm无法连接到它。
2)虚拟机上的localhost与主机上的localhost不一样(听起来很奇怪)。
3)V8debugging器正在本地主机上侦听
解:
你可以设置ssh代理到linux虚拟机: ssh -L 5858:127.0.0.1:5858 <vm_user>@<vm_ip> -N
在这里你可以find答案如何在Windows上 – > stackoverflow如果你会做到上述WebStorm中的debuggingconfiguration将为主机:127.0.0.1端口:5858
您可以通过检查“debugging器”选项卡和“variables”面板来检查WebStorm是否连接到远程debugging会话。 无法连接 , 连接
这就是我在Linux Debian VM中所做的:
安装平衡器
sudo apt-get install balance -y
在平衡器中创build一条path,将您的5858端口重新路由到5859
balance 5859 127.0.0.1:5858
启动你的应用程序
node --debug app.js
现在您可以从端口5859以外的虚拟机访问它
只是一个头,当我尝试这个我不得不使用--debug-brk
。 只用--debug
运行,不允许WebStorm在连接后设置断点。