Я хотел бы отлаживать node.js как rails. Я пробовал несколько способов:
Итак, что лучший вариант для отладки приложений на узлах, таких как byebug для рельсов?
Обновить:
спасибо to @AbhinavD Мне удалось сделать это в VSCode: сначала вам нужно отредактировать приложение /.vscode/launch.js javascript { "version": "0.2.0", "configurations": [ { "type": "node", "request": "attach", "name": "Node: Nodemon", "processId": "${command:PickProcess}", "restart": true, "protocol": "inspector", }, ] }
Итак, теперь nodemon перезапускает сервер после изменений и VSCode автоматически подключается к отладчику.
Смотрите видео https://vimeo.com/267975071
Кто-нибудь может это сделать в WebStorm?
Я не уверен, как работает byebug
. Однако, если вы используете VSCode и nodemon (установлены глобально), VSCode может снова подключиться к выполняемому процессу и будет разбиваться на одну и ту же точку в отладчике.
Вот как выглядит мой конфигурационный файл
{
"name": "Launch server.js via nodemon",
"type": "node",
"request": "launch",
"runtimeExecutable": "nodemon",
"program": "${workspaceFolder}/joiValidation.js",
"restart": true,
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}
Вот небольшое видео, которое я сделал из моей отладки. Официальная документация
Чтобы ответить на ваш вопрос: нет способа. К сожалению, с помощью Node.js вам всегда нужно перезапустить сеанс отладки при изменении кода .
Недавно я написал статью об отладке JavaScript и TypeScript, используя различные инструменты, если вам интересно, но нет ничего похожего на живую отладку.
Для конфигурации вам необходимо иметь Webstorm 2018. 2 и выполните следующие действия:
и ТАКЖЕ включить параметр "Прикрепить к Node.js/Chrome" [+] следующим образом:
Чтобы перезапустить отладчик после каждого изменения, вам нужно включить параметр [ x] Reconnect Automatically.
Поток работы с отладкой:
Примечание. Если вы направляетесь непосредственно к отладчику (и, следовательно, не выполняете этот процесс), вероятно, ожидаете прекращения процесса после изменения строк кода.