VS Code未达到在Docker容器中运行的Node应用程序的断点

摘要

我正在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容器的日志行。

VS Code未达到在Docker容器中运行的Node应用程序的断点

但是,设置断点时不会命中断点。这是通天塔节点的问题吗?有没有建议的途径来使节点调试与babel-node一起使用?

VS Code未达到在Docker容器中运行的Node应用程序的断点

我的VS Code调试配置:

  {
        "type": "node","request": "attach","name": "Docker: GraphQL","port": 5859,"protocol": "inspector","restart": true,"remoteRoot": "/app","localRoot": "${workspaceFolder}"
    }
wang5412878 回答:VS Code未达到在Docker容器中运行的Node应用程序的断点

我无法使其与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",
本文链接:https://www.f2er.com/3134768.html

大家都在问