VS代码debugging端口不匹配

细节

在Win10中。 VS代码,帮助,关于…

[窗口标题]
Visual Studio代码

[内容]
版本1.14.2
提交cb82febafda0c8c199b9201ad274e25d9a76874e
发布date2017-07-19T23:34:09.706Z
壳牌1.6.6
渲染器56.0.2924.87
节点7.4.0

生成launch.json ,调整我的runtime...设置

 { // Use IntelliSense to learn about possible Node.js debug attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Launch Program", "cwd": "${workspaceRoot}", "runtimeExecutable": "npm.cmd", "runtimeArgs": [ "run", "functional-test" ], "skipFiles": [ "<node_internals>/**/*.js" ] } ] } 

上面引用的Npm脚本…

 "functional-test": "node test/functional/run-foo-tests", 

第一次尝试

然后我启动一个debugging会话(F5),在debugging控制台然后产生…

使用检查器协议进行debugging,因为设置了运行时可执行文件。
npm.cmd –inspect = 32825 –debug-brk运行functiontesting

请注意在我的package.json或launch.json中没有指定的附加标志。

除了上面的消息之外,我还在IDE中显示了一个引用连接超时错误的popup窗口。

无法连接到运行时进程,10000毫秒后超时 – (原因:无法连接到目标:连接ECONNREFUSED

第二次尝试

如果我改变npm脚本,如下所示(include --inspect flag)…

 "functional-test": "node --inspect test/functional/run-foo-tests", 

debugging控制台状态…

使用检查器协议进行debugging,因为设置了运行时可执行文件。
npm.cmd –inspect = 17976 –debug-brk运行functiontesting
debugging器在端口9229上侦听。
警告:这是一个实验性function,可以随时更改。

注意不同的端口设置。 至lessdebugging器正在启动,并给我一个端口来尝试和目标。

它在哪里获得这些价值? 我怎样才能让他们匹配(没有手动编辑launch.json和npm脚本来分配两个相同的端口)?

它永远不会成功加载,而是显示顶部的popup消息(如上所述)。

第三次尝试

如果我编辑npm脚本添加端口…

 "functional-test": "node --inspect=9229 test/functional/run-foo-tests", 

并编辑launch.json的port设置以匹配…

 "configurations": [ { "type": "node", "request": "launch", "name": "Launch Program", "cwd": "${workspaceRoot}", "runtimeExecutable": "npm.cmd", "runtimeArgs": [ "run", "functional-test" ], "port": 9229, "skipFiles": [ "<node_internals>/**/*.js" ] } ] 

然后,我在debugging控制台中收到以下消息:

使用检查器协议进行debugging,因为设置了运行时可执行文件。
npm.cmd运行functiontesting
debugging器在端口5858上侦听。
警告:这是一个实验性function,可以随时更改。
{期望的控制台输出…}

然后它将正常工作(AFAIK!)请注意,现在debugging控制台的第二行(回显/logging命令运行)现在与launch.json runtimeArgs设置(在第一次和第二次尝试中不相匹配)相匹配。

除了试错的骷髅蛮力之外,人们是怎么想出来的(当然肯定还有更好的办法呢?)

第四次尝试

试图为npm脚本调用设置端口(显然不像npm脚本中的node ...调用那样)和portconfiguration参数,并且在第一个例子中失败。

 "runtimeArgs": [ "run", "functional-test", "--inspect=5858" ], "port": 5858, 

第五次尝试

当然,正如我正在写这篇文章,我终于find了像谷歌的答案 …

 "scripts": { "debug": "node --nolazy --debug-brk=5858 myProgram.js" }, 

调整我的脚本以匹配yield(在Debug Console中)…

使用检查器协议进行debugging,因为设置了运行时可执行文件。
npm.cmd运行functiontesting
(节点:12420)DeprecationWarning:不推荐使用节点–debug。 请使用node –inspect来代替。
debugging器在127.0.0.1:5858上侦听

我也在顶部显示一个不同的popup窗口…

无法连接到运行时进程,10000毫秒后超时 – (原因:无法连接到目标:parsing错误)。

第六次尝试

如果我更改脚本以匹配debugging控制台中的信息…

 "functional-test": "node --nolazy --inspect test/functional/run-foo-tests", 

debugging控制台说…

使用检查器协议进行debugging,因为设置了运行时可执行文件。
npm.cmd运行functiontesting
debugging器在端口9229上侦听。
警告:这是一个实验性function,可以随时更改。

而popup是…

无法连接到运行时进程,10000毫秒后超时 – (原因:无法连接到目标:连接ECONNREFUSED 127.0.0.1

Solutions Collecting From Web of "VS代码debugging端口不匹配"