Chr*_*itz 21 node.js npm visual-studio-code
我有一个npm脚本,我正在尝试调试.我使用vscode所以我想我会创建一个调试配置并使用调试器逐步完成它.
我的npm脚本看起来是:
"scripts": {
...
"dev": "node tasks/runner.js",
}
Run Code Online (Sandbox Code Playgroud)
所以我创建了以下调试配置:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"runtimeExecutable": "npm",
"cwd": "${workspaceRoot}",
"runtimeArgs": [
"run", "dev"
],
"port": 5858,
"stopOnEntry": true
}
]
}
Run Code Online (Sandbox Code Playgroud)
当我启动它时脚本运行,但vscode永远无法连接,我得到错误:
无法通过'legacy'协议连接到运行时; 考虑使用'inspector'协议(10000毫秒后超时).
我尝试添加一个检查器协议:
{
"type": "node",
"request": "attach",
"name": "Attach (Inspector Protocol)",
"port": 9229,
"protocol": "inspector"
}
Run Code Online (Sandbox Code Playgroud)
并通过以下方式运行npm脚本:
npm run dev --inspect
Run Code Online (Sandbox Code Playgroud)
而这次我收到错误:
确保使用--inspect启动Node.无法连接到运行时进程,10000毫秒后超时 - (原因:无法连接到目标:连接ECONNREFUSED 127.0.0.1:9229).
我不确定我错过了哪一部分.
编辑每个重复标记
我看到另一个问题:通过vscode调试npm脚本,但其他问题和答案中的详细信息并不详细和具体.如果有人正在搜索我遇到的特定vscode错误消息或我遇到的配置类型,则他们不一定会得到此问题所选答案给出的级别答案详细信息.
Jak*_*iec 24
您不应该尝试调试,npm script因为您真正想要的是将调试器附加到使用npm run命令启动的脚本(此处NPM仅用作任务运行器).
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceRoot}/tasks/runner.js"
}
]
}
Run Code Online (Sandbox Code Playgroud)
如果您真的想使用npm脚本运行它,那么您可以使用以下配置:
{
"type": "node",
"request": "launch",
"name": "Launch via NPM",
"runtimeExecutable": "npm",
"windows": {
"runtimeExecutable": "npm.cmd"
},
"runtimeArgs": [
"run-script",
"dev"
],
"port": 5858
}
Run Code Online (Sandbox Code Playgroud)
但您还必须更改脚本命令(指定调试端口)
"scripts": {
"dev": "node --nolazy --debug-brk=5858 tasks/runner.js"
},
Run Code Online (Sandbox Code Playgroud)
只需单击齿轮图标并选择一个,即可浏览各种调试配置.
有关Node.js调试的更多信息,请参阅VS Code文档.
| 归档时间: |
|
| 查看次数: |
11608 次 |
| 最近记录: |