我有一个简单的控制台node.js应用程序,正在远程服务器上运行。我想使用Chrome DevTools远程调试它。我该怎么做?
我有一个简单的控制台node.js应用程序,正在远程服务器上运行。我想使用Chrome DevTools远程调试它。我该怎么做?
按照这里的指示here。
另一篇好文章在这里here。
假设您正在远程计算机remote.example.com上运行Node,并想要进行调试。 在该计算机上,您应该启动带有检查器仅侦听localhost(默认值)的节点进程。
$ node --inspect server.js
现在,在您想要启动调试客户端连接的本地计算机上,您可以设置ssh隧道:
$ ssh -L 9221:localhost:9229 user@remote.example.com
然后在您的本地计算机的Chrome浏览器中转到此地址:
chrome://inspect/#devices
您应该看到像这样的东西:
点击inspect
后,您应该看到熟悉的Chrome开发人员工具窗口。祝你好运!
在远程服务器上:
$ node --inspect server.js
在本地使用Putty创建SSH隧道。
点击添加按钮:
在“Session”选项卡中点击保存!
然后单击“打开”按钮。
您可以使用以下命令检查隧道是否已打开:
netstat -a -n | grep 9221
在本地计算机上,打开Chrome并导航到:
chrome://inspect/#devices
存在安全考虑,但如果在同一网络中,以下可以是一种简单/安全的解决方案:
在服务器上启动您的应用程序:
node --inspect=0.0.0.0:9229 server.js
与其让节点严格绑定到本地主机,您可以通过0.0.0.0:9229
将其绑定到任何网络接口。
现在在您的个人电脑上,打开Chrome并转到chrome://inspect/#devices
。Chrome已经多次更改了UI,但您应该能够将远程服务器IP配置为目标。例如:[server_ip]:9229
。请注意,这只适用于在本地网络上使用的最安全的情况,其中server_ip
是本地IP地址。如果您针对公共IP地址进行调试,则存在其他人附加的风险。
使用Windows客户端和Visual Studio Code
这是Peter答案的一个变体,使用Visual Studio Code而不是Chrome。
remote
为local
)。{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Attach to Remote",
"address": "127.0.0.1",
"port": 9221,
"localRoot": "${workspaceFolder}/npm",
"remoteRoot": "/abs/path/npm",
"skipFiles": [
"<node_internals>/**"
]
},
]
}
inspect-brk
命令来暂停你的程序,直到Visual Studio Code连接到远程主机:node --inspect-brk your-node-program.js
1)Run the application in remote
2)Open application in chrome
3)Open Developer Tools--->Sources
4)Ctrl + p
5)Open file you want to debug there<filename.js>
6)Place debug points in your now opened file.
node --inspect=0.0.0.0 server.js
,无需SSH即可使用。上面的配置步骤非常关键。 - Stephen Shank--inspect-brk
选项。它将防止脚本启动,因此您可以在调试器连接后启动它。 - Eugene