2016-04-06 2 views
0

Я изо всех сил пытаюсь отладить удаленную часть кода node.js, которая была переведена с ES6 на BabelJs. Вот ситуация:Как удаленно отлаживать приложение Node.js с исходными картами (используя WebStorm)

У меня есть проект с исходным кодом ES6 server\app.js, который переводится на ES5 и помещается в dist\server\app.js вместе с dist\server\app.js.map. Я могу установить точку останова в исходном server\app.js, а затем отладить локально файл dist\server\app.js, чтобы попасть в эту точку останова - исходная карта работает отлично.

Теперь я положил всю свою папку dist на удаленный компьютер, где я запускаю свое приложение с помощью команды node --debug-brk dist\server\app.js. Подключение к этому процессу с удаленным отладчиком из WebStorm заставляет приложение запускаться, но точка останова не попадает.

Удивительно, если я запустил node --debug-brk dist\server\app.js с терминала на том же хосте, где установлен мой WebStorm, тогда удаленный отладчик, подключающийся к 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 

Btw. VS Code решает проблему, выставляя localRoot и remoteRoot в конфигурации отладки.

+0

Это сработало для меня. Благодарю. – Maciej