如何使用chrome devtools调试远程node.js应用程序

时间:2018-05-08 21:32:42

标签: node.js google-chrome-devtools

我有一个在远程服务器上运行的简单控制台node.js应用程序。我想使用Chrome DevTools远程调试它。我怎么能这样做?

4 个答案:

答案 0 :(得分:13)

按照此说明here 另一篇好文章here

假设您在远程计算机remote.example.com上运行Node,您希望能够进行调试。在该计算机上,您应该启动节点进程,并且检查器仅侦听localhost(默认值)。

  

$ node --inspect server.js

现在,在您想要启动调试客户端连接的本地计算机上,您可以设置ssh隧道:

  

$ ssh -L 9221:localhost:9229 user@remote.example.com

然后在Chrome浏览器的本地计算机上转到this地址:

  

铬://检查/#设备

你应该看到这样的事情:

enter image description here

点击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。

  1. 应用@Peter 回答中的所有步骤在 Putty 中设置端口转发(确保将 remote 更改为 local,如@Peter 回答的第一条评论中指出的那样)。
  2. 在 Visual Studio Code 中,添加以下配置:
{
    // 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>/**"
            ]
        },
     ]
}
  1. 使用 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 地址进行调试,则存在被其他人附加的风险。