Node.js VSC断点保持未绑定状态
我正在尝试使用Visual Studio代码调试器调试Node.js应用程序。但是,所有断点都保持“未绑定”。为什么断点没有绑定 我使用VSC v1.55.2和节点v9.8.0。 我的配置Node.js VSC断点保持未绑定状态,node.js,visual-studio-code,vscode-debugger,Node.js,Visual Studio Code,Vscode Debugger,我正在尝试使用Visual Studio代码调试器调试Node.js应用程序。但是,所有断点都保持“未绑定”。为什么断点没有绑定 我使用VSC v1.55.2和节点v9.8.0。 我的配置launch.json: { "configurations": [ { "name": "Debug Server Side", "console": &qu
launch.json
:
{
"configurations": [
{
"name": "Debug Server Side",
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"program": "${workspaceFolder}/server.js",
"request": "launch",
"restart": true,
"runtimeExecutable": "nodemon",
"skipFiles": [
"<node_internals>/**"
],
"type": "pwa-node",
// I added:
"localRoot": "${workspaceFolder}",
"remoteRoot": "/",
"trace": true,
}
]
}
详细日志:
例如,我在server.js
的第3行和第5行添加了一个断点,这两行都未绑定:
const app = require("./app");
const { SERVER_PORT } = process.env;
app.set("port", SERVER_PORT);
const server = app.listen(app.get("port"), () => {
console.log(`Server running → PORT ${server.address().port}`);
});
您应该尝试在VSC扩展中安装JavaScript调试器。然后用那个调试器打开新的终端。我使用的是节点版本9.8.0,更新到节点版本14.15.1解决了这个问题。谢谢@deko_39,但是Javascript调试器是内置在VSC中的,所以它已经安装好了。安装Javascript调试器的夜间版本也不能解决这个问题。在安装该扩展之后。在配置数组中添加此对象:{“type”:“node terminal”,“name”:“Create JavaScript Debug terminal”,“request”:“launch”,“cwd”:“${workspaceFolder}”}或者您可以转到Debug选项卡,选择nodejs>>创建JavaScript Debug terminal,该对象将自动添加到配置中。希望能有帮助。您是否检查了插入断点的确切位置?似乎VSC不喜欢array.map/forEach等使用的回调处的断点。我在异步代码中也看到过这种行为,但并不总是如此。@ak_linus,我不认为是这样,但可以肯定的是,我在文章末尾添加了一个2个断点的示例来进行检查。这些断点不应该工作吗?我在一个新项目上尝试了相同的设置,一切都按预期工作。我认为您的节点配置有问题,在VS代码之外。您是否尝试过使用
“runtimeExecutable”进行调试:“node”
而不是调试窗口列表中的nodemon
,在“常规”部分下,您可以找到以下选项:“启用调试JavaScript”或类似选项,请确保选中它,如果选择了它,那么问题不在visual studio调试器中,而是在其他一些配置中。您所做的一切我都做了。无界断点错误让我发疯。尝试清理并重建整个项目。
const app = require("./app");
const { SERVER_PORT } = process.env;
app.set("port", SERVER_PORT);
const server = app.listen(app.get("port"), () => {
console.log(`Server running → PORT ${server.address().port}`);
});