我有一个在远程服务器上运行的简单控制台node.js应用程序。我想使用Chrome DevTools远程调试它。我怎么能这样做?
答案 0 :(得分:13)
假设您在远程计算机remote.example.com上运行Node,您希望能够进行调试。在该计算机上,您应该启动节点进程,并且检查器仅侦听localhost(默认值)。
$ node --inspect server.js
现在,在您想要启动调试客户端连接的本地计算机上,您可以设置ssh隧道:
$ ssh -L 9221:localhost:9229 user@remote.example.com
然后在Chrome浏览器的本地计算机上转到this地址:
铬://检查/#设备
你应该看到这样的事情:
点击inspect
后,您会看到熟悉的Chrome开发者工具窗口。祝你好运!
答案 1 :(得分:0)
您可以按照步骤
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.
答案 2 :(得分:0)
使用 Windows 客户端和 Visual Studio Code
这是 Peter 答案的变体,使用 Visual Studio Code 而不是 Chrome。
remote
更改为 local
,如@Peter 回答的第一条评论中指出的那样)。{
// 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>/**"
]
},
]
}
inpect-brk
暂停程序,直到 Visual Studio Code 连接到远程主机:node --inspect-brk your-node-program.js
答案 3 :(得分:0)
有安全方面的考虑,但如果在同一网络上,以下可能是一个简单/安全的解决方案:
在服务器上,启动您的应用:
node --inspect=0.0.0.0:9229 server.js
您可以通过 0.0.0.0:9229
将节点绑定到任何网络接口,而不是让节点严格绑定到 localhost。
现在在您的 PC 上,打开 chrome 并转到 chrome://inspect/#devices
。 Chrome 已更改 UI accouple 时间,但您应该能够将远程服务器 IP 配置为目标。例如。 [server_ip]:9229
。请注意,这在 server_ip
是本地 IP 地址的本地网络上使用是最安全的。如果您针对公共 IP 地址进行调试,则存在被其他人附加的风险。