Node.js VS代码未命中Docker容器中运行的节点应用程序的断点 总结
我正在docker容器中运行节点应用程序,无法使VS代码调试器命中断点 Docker设置 docker容器暴露端口5859。在容器内,使用以下命令运行节点应用程序:Node.js VS代码未命中Docker容器中运行的节点应用程序的断点 总结,node.js,docker,babeljs,nodemon,vscode-debugger,Node.js,Docker,Babeljs,Nodemon,Vscode Debugger,我正在docker容器中运行节点应用程序,无法使VS代码调试器命中断点 Docker设置 docker容器暴露端口5859。在容器内,使用以下命令运行节点应用程序: nodemon-L--watch src--exec babel node src/server.js--inspect=0.0.0.0:5859--nolazy 它报告调试器正在侦听: [nodemon] 1.19.0 [nodemon] to restart at any time, enter `rs` [nodemon] w
nodemon-L--watch src--exec babel node src/server.js--inspect=0.0.0.0:5859--nolazy
它报告调试器正在侦听:
[nodemon] 1.19.0
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: /app/src/**/*
[nodemon] starting `babel-node src/server.js --inspect=0.0.0.0:5859 --nolazy`
Debugger listening on ws://0.0.0.0:5859/5939f6b6-5ade-4ce5-9694-7df5f5b8385b
For help, see: https://nodejs.org/en/docs/inspector
VS代码设置
当我在VS代码中启动调试配置文件时,它似乎是附加的。下面是运行docker容器日志中的一行。
但是,设置断点时不会命中断点。这是巴别塔节点问题吗?是否有任何建议的路径使节点调试与巴贝尔节点一起工作
我的VS代码调试配置:
{
"type": "node",
"request": "attach",
"name": "Docker: GraphQL",
"port": 5859,
"protocol": "inspector",
"restart": true,
"remoteRoot": "/app",
"localRoot": "${workspaceFolder}"
}
我无法将其与nodemon一起使用,但修改了我的
.babelrc
文件以包含内联源代码映射,从而触发VS代码以命中我设置的断点。我的.babelrc
文件如下所示:
{
"env": {
"production": {
"presets": [
["es2015", {"modules": false}],
"stage-1"
]
},
"development": {
"presets": [
["es2015"],
"stage-1"
],
"sourceMaps": "inline",
"retainLines": true
} }
}
以及docker在package.json
中调用的相应脚本。端口5859在docker compose文件中公开
"start:docker": "babel-node src/server.js --inspect=0.0.0.0:5859 --nolazy",