VS Code 未在 Docker 容器中为 Node 应用程序 运行 设置断点
VS Code not hitting breakpoints for Node app running in Docker Container
总结
我是 运行 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] 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 Code 中启动调试配置文件时,它似乎已附加。以下是 运行 docker 容器日志中的一行。
但是,当我设置它们时没有遇到断点。这是一个 babel-node 问题吗?是否有任何建议的路径可以让节点调试与 babel-node
一起工作?
我的 VS Code 调试配置:
{
"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
中调用的对应脚本。 docker-compose 文件中公开了端口 5859。
"start:docker": "babel-node src/server.js --inspect=0.0.0.0:5859 --nolazy",
总结
我是 运行 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] 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 Code 中启动调试配置文件时,它似乎已附加。以下是 运行 docker 容器日志中的一行。
babel-node
一起工作?
我的 VS Code 调试配置:
{
"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
中调用的对应脚本。 docker-compose 文件中公开了端口 5859。
"start:docker": "babel-node src/server.js --inspect=0.0.0.0:5859 --nolazy",