2016-04-06 37 views
0

我努力遠程調試從ES6與BabelJs一起轉換的node.js代碼片段。這是的情況:如何使用源地圖(使用WebStorm)遠程調試Node.js應用程序

我有一個項目與ES6源文件server\app.js轉換爲ES5並把dist\server\app.jsdist\server\app.js.map一起。我可以在原始server\app.js中設置一個斷點,然後在本地調試文件dist\server\app.js以達到該斷點 - 源圖完美無缺。

現在我已將我的整個dist文件夾放到遠程PC,在那裏我用node --debug-brk dist\server\app.js命令啓動我的應用程序。使用WebStorm的遠程調試器連接到該進程使應用程序運行,但斷點不被觸發。令人驚訝的是,如果我從安裝了WebStorm的同一主機上的終端運行node --debug-brk dist\server\app.js,則連接到localhost:5858的遠程調試器能夠觸發該斷點。

在遠程調試時,爲了達到該斷點,我缺少什麼?

在此先感謝您的任何建議。

Webstorm: 2016.1 
Node: 4.4.2 (both local and remote machine) 

回答

1

當在與WebStorm節點通信中發生斷點時,調試程序似乎發送行號和文件名。文件路徑是從服務器節點運行的路徑。我們擁有的是:

Server (remote): 
/remotePath/dist/server/app.js (transpiled file ES5) 

Local system: 
/localPath/server/app.js (source file ES6) 
/localPath/dist/server/app.js (transpiled file ES5) 
/localPath/dist/server/app.js.map (source map). 

什麼節點發回是這樣的路徑:

/remotePath/dist/server/app.js 

所以WebStorm試圖找到它的文件系統文件。但它不存在。 這裏的解決方案可能是創建本地文件系統的符號鏈接:

/remotePath -> /localPath 

順便說一句。 VS Code通過在調試配置中公開localRoot和remoteRoot來解決它。

+0

這對我有效。謝謝。 – Maciej

相關問題