2016-04-06 11 views
0

Ich habe Probleme, Debug Stück von node.js Code zu debuggen, die von ES6 mit BabelJs übersetzt wurde. Hier ist die Situation:Wie Debuggen der Node.js App mit Quellkarten (mit WebStorm)

Ich habe ein Projekt mit ES6-Quelldatei server\app.js, die in ES5 übersetzt und dist\server\app.js.map auf dist\server\app.js gesetzt wird. Ich kann einen Breakpoint in Original setzen server\app.js und dann debuggen lokal Datei dist\server\app.js, um diesen Breakpoint zu treffen - Quellkarte funktioniert einwandfrei.

Jetzt habe ich meine gesamte dist Ordner auf Remote-PC, wo ich meine App mit node --debug-brk dist\server\app.js Befehl starten. Die Verbindung zu diesem Prozess mit dem Remote-Debugger von WebStorm führt dazu, dass die Anwendung ausgeführt wird, der Haltepunkt jedoch nicht erreicht wird.

Überraschenderweise, wenn ich node --debug-brk dist\server\app.js von Terminal auf dem gleichen Host ausführen, wo mein WebStorm installiert ist, dann Remote-Debugger Verbindung zu localhost: 5858 ist in der Lage, diesen Haltepunkt auszulösen.

Gibt es etwas, das ich vermisse, um diesen Breakpoint beim Debuggen aus der Ferne zu treffen?

Vielen Dank im Voraus für Anregungen.

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

Antwort

1

Wenn ein Breakpoint in der Kommunikation mit WebStorm Knoten knacken Debugger scheint Zeilennummer und Dateiname senden. Der Dateipfad ist der Pfad, von dem aus der Serverknoten ausgeführt wird. Was wir haben, ist:

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). 

Welche Knoten sendet zurück ist dieser Weg:

/remotePath/dist/server/app.js 

So WebStorm versucht, diese Datei in das Dateisystem zu finden. Aber es existiert nicht. Die Lösung hier könnte eine symbolische Verbindung in dem lokalen Dateisystem zu erstellen:

/remotePath -> /localPath 

Btw. VS Code hat dies gelöst, indem localRoot und remoteRoot in der Debug-Konfiguration verfügbar gemacht wurden.

+0

Das hat bei mir funktioniert. Vielen Dank. – Maciej

Verwandte Themen