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