Node.js 在VS代码调试器中使用旧版本的节点
我将VS代码更新为1.14.2,并尝试运行需要节点6.x的应用程序。在此更新之前,我使用的配置运行良好:Node.js 在VS代码调试器中使用旧版本的节点,node.js,visual-studio-code,keystonejs,Node.js,Visual Studio Code,Keystonejs,我将VS代码更新为1.14.2,并尝试运行需要节点6.x的应用程序。在此更新之前,我使用的配置运行良好: { "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Launch Program", "program": "${workspaceRoo
{
"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或更高版本运行时应该是这样)。此外,它还提供了以下信息,我不确定是否相关:
使用inspector协议进行调试,因为检测到Node.js v8.2.1。
node--inspect=38743--debug brk keystone.js
在ws://127.0.0.1:38743/d4a20480-3a0f-4aa7-8882-aec756edd6da上侦听的调试器
已附加调试器。
我正在使用nvm管理我的节点版本,nvm list
提供以下内容(如您所见,我已经将6.11.0别名设置为默认值):
我假设由于尝试使用错误版本的Node而无法执行,如果您能帮我解决这个问题,我们将不胜感激。不确定是哪个版本的VS代码引入了这个选项(我使用的是1.17.2版),但在
launch.json
中,我们可以明确指定使用哪个调试协议
因此,要强制VS代码使用legacy
协议,请添加“协议”:“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"
}
]
}
{
"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"
}
]
}