我将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或更高版本时)。此外,它提供了以下消息,我不确定是否相关:
使用检查程序协议进行调试,因为检测到Node.js v8.2.1。
node --inspect = 38743 --debug-brk keystone.js
监听ws://127.0.0.1的调试器:38743 / d4a20480-3a0f-4aa7-8882-aec756edd6da 附加调试器。
我使用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版本而执行,任何帮助解决这个问题都将非常感激。
答案 0 :(得分:0)
不确定哪个版本的VS Code引入了此选项(我使用的是版本1.17.2),但在launch.json
中,我们可以明确指定要使用的调试协议。
因此,要强制VS代码使用legacy
协议,请添加"protocol": "legacy"
您的launch.json
已更新为包含该密钥:
{
"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,
"protocol": "legacy"
}
]
}