col*_*rtz 5 node.js docker nodemon babeljs vscode-debugger
我在 docker 容器内运行节点应用程序无法让 VS 代码调试器命中断点。
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
Run Code Online (Sandbox Code Playgroud)
当我在 VS Code 中启动调试配置文件时,它似乎附加了。以下是正在运行的 docker 容器的日志中的一行。
但是,当我设置断点时,没有遇到断点。这是 babel 节点问题吗?是否有任何建议的路径可以让节点调试工作babel-node?
我的 VS Code 调试配置:
{
"type": "node",
"request": "attach",
"name": "Docker: GraphQL",
"port": 5859,
"protocol": "inspector",
"restart": true,
"remoteRoot": "/app",
"localRoot": "${workspaceFolder}"
}
Run Code Online (Sandbox Code Playgroud)
我无法让它与 nodemon 一起使用,但修改我的.babelrc文件以包含内联源映射会触发 VS code 以命中我设置的断点。我的.babelrc文件如下所示:
{
"env": {
"production": {
"presets": [
["es2015", {"modules": false}],
"stage-1"
]
},
"development": {
"presets": [
["es2015"],
"stage-1"
],
"sourceMaps": "inline",
"retainLines": true
} }
}
Run Code Online (Sandbox Code Playgroud)
以及docker中调用的对应脚本package.json。端口 5859 在 docker-compose 文件中公开。
"start:docker": "babel-node src/server.js --inspect=0.0.0.0:5859 --nolazy",
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
827 次 |
| 最近记录: |