Visual Studio代码 - 无法将调试器附加到远程Node.js应用程序

时间:2017-09-28 18:33:15

标签: visual-studio-code vscode-settings

这是我的调试配置:

{
    "type": "node",
    "request": "attach",
    "name": "testServer",
    "address": "test.server.ip",
    "port": 5858,
    "localRoot": "${workspaceRoot}/test/server",
    "remoteRoot": "~/App/test/server"
}

我已使用以下命令

成功启动了调试模式下的远程应用程序
node --debug app

然后我使用testServer配置启动VS Code调试器。它打印错误:

Debugging with legacy protocol because Node.js version could not be determined (Error: timeout) 

我在macOS sierra上使用 VS Code版本1.16.1。

我猜它无法连接远程服务器,因为它是通过SSH保护的。但是我在VS Code调试器的配置中看不到任何与SSH相关的配置。

我已经浏览了一些articlesthis之类的问题  和this,但没有帮助。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您需要启动远程应用程序,并告诉节点使用以下命令远程公开端口:

node app --inspect=0.0.0.0:5858

答案 1 :(得分:0)

我在Windows上的工作方式如下:

使用主机名,远程服务器创建一个新的putty会话,然后转到"隧道"在SSH下拉列表中,然后按照它配置它:

在远程主机上运行节点调试并复制它给你的端口(对我来说9229)

Run node debug

然后像那样填写Putty:

Fill putty tunnel

您现在可以保存此会话,然后将其打开。  现在,每次打开此SSH会话时,端口9229上远程服务器上发生的一切都将重定向到本地9229端口。

在VSCode中,配置现在非常简单,因为它就像你在本地一样:

    {
        "type": "node",
        "request": "attach",
        "name": "Attach",
        "port": 9229
    },

希望有所帮助