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

问题描述 投票:1回答:1

摘要

我正在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容器的日志行。enter image description here但是,设置断点时不会命中断点。这是通天塔节点的问题吗?有没有建议的前进路径来使节点调试与babel-node一起使用?

enter image description here

我的VS代码调试配置:

  {
        "type": "node",
        "request": "attach",
        "name": "Docker: GraphQL",
        "port": 5859,
        "protocol": "inspector",
        "restart": true,
        "remoteRoot": "/app",
        "localRoot": "${workspaceFolder}"
    }
node.js docker babeljs nodemon vscode-debugger
1个回答
1
投票

我无法使它与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",
© www.soinside.com 2019 - 2024. All rights reserved.