如何调试运行Chrome/WebKit作为远程调试器的Node.js服务器?

Chr*_* G. 19 webkit google-chrome node.js

如果您的节点正在运行

node --debug server.js
Run Code Online (Sandbox Code Playgroud)

这给了我一个端口号xxxx,我应该在启动Chrome时使用这个端口号吗?

你从中远程调试Google\ Chrome --remote-debugging-port=xxxx吗?

或者9222是一个神奇的端口,因为它已被提及.

我是否在正确的轨道上,尝试将Chrome启动--remote-debugger到Node.js中server.js

ann*_*neb 17

现在,节点检查器/ --debug已由检查器替换.请参阅下面的更新

#now deprecated / see below for update

#install node-inspector
npm install -g node-inspector

#start node-inspector, listen on port 8080 (default)
node-inspector --web-port=8080

#in another terminal session/window:
#while node-inspector is running, start your project in debug mode 
node --debug myproject.js
Run Code Online (Sandbox Code Playgroud)

现在,您可以浏览到http:// your_server:8080以获取myproject.js的完整调试会话

如果由于防火墙或其他原因无法在远程端口上访问远程服务器,则可以从本地计算机上的端口8080到远程服务器上的"localhost:8080"创建一个ssh-tunnel:

ssh -L 8080:localhost:8080 username@remoteserver -N
Run Code Online (Sandbox Code Playgroud)

并在本地计算机上使用http:// localhost:8080时保持此运行以调试远程nodejs会话


2017年8月更新

在检查模式下启动节点:

node --inspect=0.0.0.0:9229 myproject.js
Run Code Online (Sandbox Code Playgroud)

或者如果您希望调试器在myproject.js的第一行中断:

node --inspect-brk=0.0.0.0:9229 myproject.js
Run Code Online (Sandbox Code Playgroud)

然后在Chrome浏览器中打开以下网址:

chrome://inspect
Run Code Online (Sandbox Code Playgroud)

单击"配置..."按钮并添加以下目标:

ip-or-name-of-server-running-node:9229
Run Code Online (Sandbox Code Playgroud)

单击"完成"按钮后,您应该在远程目标下看到myproject.js.单击inspect链接开始调试.不幸的是,检查链接在适用于Ubuntu的Chrome 58上不起作用.它适用于Chrome 60 for Windows.


Joh*_*yHK 9

用于node-inspector从您已启动的Chrome中远程调试您的节点应用程序,--debug如您所示.


sch*_*mod 5

最新版本的Node(> v6.3.0)和Chrome现在允许您使用Chrome开发者工具调试Node.JS流程,而无需安装任何其他内容.只是传递--inspectnode:

$ node --inspect script.js

Debugger listening on port 9229.
Warning: This is an experimental feature and could change at any time.
To start debugging, open the following URL in Chrome:
    chrome-devtools://SOME-URL-HERE
Run Code Online (Sandbox Code Playgroud)

只需在Chrome中打开该网址,就可以了.

如果您需要在Node启动后立即暂停脚本,您也可以传入--debug-brk相同的命令.