gpt4 book ai didi

node.js - VS Code 没有为在 Docker 容器中运行的 Node 应用程序命中断点

转载 作者:太空宇宙 更新时间:2023-11-03 22:04:18 25 4
gpt4 key购买 nike

摘要

我正在 Docker 容器内运行 Node 应用程序,无法让 VS Code 调试器命中断点。

Docker 设置

docker 容器公开端口 5859。在容器内, Node 应用程序使用以下命令运行:

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 容器的日志行。 enter image description here但是,当我设置断点时,没有遇到断点。这是 babel-node 的问题吗?是否有任何建议的路径可以使 Node 调试与 babel-node 一起使用?

enter image description here

我的 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
} }
}

以及package.json中docker调用的对应脚本。端口 5859 在 docker-compose 文件中公开。

"start:docker": "babel-node src/server.js --inspect=0.0.0.0:5859 --nolazy",

关于node.js - VS Code 没有为在 Docker 容器中运行的 Node 应用程序命中断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58774607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com