2017-09-28 109 views
0

這裏是我的調試配置:Visual Studio代碼 - 無法調試器連接到遠程的Node.js應用程式

{ 
    "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) 

我使用VS代碼版本1.16.1在MacOS山脈。

我想它無法連接遠程服務器,因爲它是通過SSH進行安全保護的。但是在VS Code調試器的配置中,我看不到與SSH有關的任何配置。

我已經通過了一些articles和問題,如thisthis,但沒有幫助。

感謝您的任何幫助。

回答

0

你需要啓動遠程應用程序,並告訴節點使用以下命令遠程暴露的端口:

node app --inspect=0.0.0.0:5858 
0

我得到它的工作就像在Windows上:

創建一個新的putty會話與主機名,你的遠程服務器,然後轉到SSH下拉列表中的「隧道」,然後像這樣配置它:

在遠程主機上運行節點調試並複製它給你的端口(對於我來說9229)

Run node debug

然後補膩子這樣的:

Fill putty tunnel

現在,您可以保存此會話,然後打開它。 現在,每次打開此SSH會話時,遠程服務器上端口9229上發生的所有事情都將被重定向到本地9229端口。

在VSCode,該配置是現在確實簡單,因爲它就像你是在本地:

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

希望它幫助

相關問題