我将VS Code更新为1.14.2并尝试运行需要Node 6.x的应用程序 . 在此更新之前,我使用的配置工作正常:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceRoot}/keystone.js"
},
{
"type": "node",
"request": "attach",
"name": "Attach to Port",
"address": "localhost",
"port": 5858
}
]
}
现在,当我执行程序时,它只是挂起而没有启动(预计当我运行Node 7.x或更高版本时) . 此外,它提供以下消息,我不确定是否相关:
Debugging with inspector protocol because Node.js v8.2.1 was detected.
node --inspect=38743 --debug-brk keystone.js
Debugger listening on ws://127.0.0.1:38743/d4a20480-3a0f-4aa7-8882-aec756edd6da Debugger attached.
我正在使用nvm来管理我的Node版本, nvm list
提供了以下内容(正如你所看到的,我已经有6.11.0别名为默认值):
$ nvm list
-> v6.11.0
v8.0.0
system
default -> 6.11.0 (-> v6.11.0)
node -> stable (-> v8.0.0) (default)
stable -> 8.0 (-> v8.0.0) (default)
iojs -> N/A (default)
lts/* -> lts/boron (-> N/A)
lts/argon -> v4.8.4 (-> N/A)
lts/boron -> v6.11.1 (-> N/A)
我假设它没有执行,因为尝试使用错误的Node版本,任何帮助搞清楚这一点将非常感激 .
1 回答
不确定哪个版本的VS Code引入了此选项(我使用的是版本1.17.2),但在
launch.json
中,我们可以明确指定要使用的调试协议 .因此,要强制VS代码使用
legacy
协议,请添加"protocol": "legacy"
这是您更新的
launch.json
以包含该密钥: