Каков правильный способ отладки сценария npm с помощью vscode?
у меня есть сценарий npm, который я пытаюсь отладить. Я использую vscode, поэтому я думал, что создам конфигурацию отладки и пройду через нее с отладчиком.
мой сценарий npm выглядит так:
"scripts": {
...
"dev": "node tasks/runner.js",
}
поэтому я создал следующую конфигурацию отладки:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"runtimeExecutable": "npm",
"cwd": "${workspaceRoot}",
"runtimeArgs": [
"run", "dev"
],
"port": 5858,
"stopOnEntry": true
}
]
}
и когда я запускаю его, скрипт запускается, но vscode никогда не может подключиться, и я получаю ошибку:
не удается подключиться к среде выполнения по протоколу "legacy"; рассмотрите возможность использования "inspector" протокол (тайм-аут после 10000 МС).
Я попытался добавить протокол инспектора:
{
"type": "node",
"request": "attach",
"name": "Attach (Inspector Protocol)",
"port": 9229,
"protocol": "inspector"
}
и запуск сценария npm через:
npm run dev --inspect
и на этот раз я получаю сообщение об ошибке:
убедитесь, что узел был запущен с --inspect. Не удается подключиться к процессу выполнения, тайм-аут после 10000 МС - (причина: не удается подключиться к цели: connect ECONNREFUSED 127.0.0.1: 9229).
Я не уверен, что я пропал.
редактировать на дубликат тега
Я вижу другой вопрос re: отладка сценария npm через vscode, но детали в другом вопросе и ответах не так детализированы и конкретны. Если кто-то ищет конкретные сообщения об ошибках vscode, с которыми я столкнулся, или тип конфигурации, который у меня был, они не обязательно получат детали ответа уровня, которые дает выбранный ответ этого вопроса.
1 ответов
вы не должны пытаться отладить npm script
потому что вы действительно хотите прикрепить отладчик к скрипту, который запускается с помощью команды npm run (NPM здесь используется только как бегун задачи).
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceRoot}/tasks/runner.js"
}
]
}
если вы действительно хотите запустить его с помощью сценария npm, вы можете использовать следующую конфигурацию:
{
"type": "node",
"request": "launch",
"name": "Launch via NPM",
"runtimeExecutable": "npm",
"windows": {
"runtimeExecutable": "npm.cmd"
},
"runtimeArgs": [
"run-script",
"dev"
],
"port": 5858
}
но вы также должны изменить команда скрипта (укажите порт отладки)
"scripts": {
"dev": "node --nolazy --debug-brk=5858 tasks/runner.js"
},
вы можете исследовать различные отладки конфигурации, просто нажав на значок шестеренки и выбрав один.
подробнее об узле.отладку js можно найти в VS код документации.