我是Node JS的新手,也是一般的JS开发人员。我有一个由WebPack捆绑的app-bundle.js文件,通过app.js文件调用。
我正在尝试使用Visual Studio Code进行调试。我为VS代码配置创建了launch.json文件。但是,当我在各个js文件中插入断点时,我得到了
Breakpoints set, but not yet bound
但是,当我在app.js或app.bundle.js中设置断点时,它可以正常工作。
我的launch.json如下:
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/app.js"
}
如何让VS代码调试器与各个js文件一起使用?
答案 0 :(得分:3)
我能够解决这个问题。
弃用debug
时,请使用inspect
。因此,将以下内容添加到package.json
中的脚本对象中,以使用webpack构建并以调试模式启动节点,并将9229作为本地端口:
"start": "webpack && node --inspect--brk=9229 app.js"
当webpack将js文件捆绑为一个时,我们需要一个源映射,以便VS代码可以在各个文件上使用断点。因此,在webpack.config.js
中,添加SourceMapDevToolPlugin
:
plugins:[
new webpack.SourceMapDevToolPlugin({
filename: '[name].js.map'
})
]
最后在 VS Code 中,配置launch.json文件,如下所示:
{
"type": "node",
"request": "launch",
"name": "Launch Program"
"stopOnEntry": false,
"args": [],
"cwd": "${workspaceFolder},
"preLaunchTask": null,
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script", "start"
],
"env": {
"NODE_ENV": "development"
},
"console": "integratedTerminal",
"port": 9229
}
答案 1 :(得分:0)
简短回答:
npm-script
命令调试,与上面的运行脚本值相同。配置内容:
{
"name": "Launch via NPM",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script", "debug"
],
"port": 9229
}
参考: