使用vscodedebuggingnpm脚本的正确方法是什么?

我有一个npm脚本,我正在尝试debugging。 我使用vscode,所以我想我会创build一个debuggingconfiguration,并与debugging器一步。

我的npm脚本看起来是:

"scripts": { ... "dev": "node tasks/runner.js", } 

所以我创build了以下debuggingconfiguration:

 { "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Launch Program", "runtimeExecutable": "npm", "cwd": "${workspaceRoot}", "runtimeArgs": [ "run", "dev" ], "port": 5858, "stopOnEntry": true } ] } 

当我启动它的脚本运行,但Vscode永远不能连接,我得到的错误:

无法通过“传统”协议连接到运行时; 考虑使用“检查员”协议(10000 ms后超时)。

我试图添加一个督察协议:

  { "type": "node", "request": "attach", "name": "Attach (Inspector Protocol)", "port": 9229, "protocol": "inspector" } 

并通过以下方式运行npm脚本:

 npm run dev --inspect 

而这一次我得到的错误:

确保节点是以–inspect启动的。 无法连接到运行时进程,10000 ms后超时 – (原因:无法连接到目标:连接ECONNREFUSED 127.0.0.1:9229)。

我不确定我错过了什么。

编辑每个重复的标签

我看到另外一个问题:通过vscodedebugging一个npm脚本,但其他问题和答案中的细节并不详细和具体。 如果有人正在search我遇到的具体vscode错误消息或configurationtypes,我不知道这个问题的select答案给出了答案的详细信息。

您不应该尝试debuggingnpm script因为您真正想要的是将debugging器附加到使用npm run命令启动的脚本(此处的NPM仅用作任务运行程序)。

 { "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Launch Program", "program": "${workspaceRoot}/tasks/runner.js" } ] } 

如果你真的想用npm脚本来运行它,那么你可以使用下面的configuration:

 { "type": "node", "request": "launch", "name": "Launch via NPM", "runtimeExecutable": "npm", "windows": { "runtimeExecutable": "npm.cmd" }, "runtimeArgs": [ "run-script", "dev" ], "port": 5858 } 

但你也必须改变你的脚本命令(指定一个debugging端口)

  "scripts": { "dev": "node --nolazy --debug-brk=5858 tasks/runner.js" }, 

您只需点击齿轮图标并select一个,即可探索各种debuggingconfiguration。

在这里输入图像描述

有关Node.jsdebugging的更多信息,请参见VS代码文档 。