nextjs 调试器未正确侦听 docker 容器内部

问题描述 投票:0回答:2

我感觉我的调试器没有做任何事情,即使它已连接: enter image description here

我正在尝试通过我的 Visual Studio 代码连接到调试器来调试我的 nextjs 应用程序。 但它忽略了所有断点.. 我的配置对我来说很好:

{
    "version": "0.2.0",
    "configurations": [
      {
        "name": "Docker: Attach to Node",
        "type": "node",
        "request": "attach",
        "port": 9229,
        "address": "localhost",
        "localRoot": "${workspaceFolder}",
        "remoteRoot": "/usr/src/app",
        "protocol": "inspector",
        "skipFiles": [
          "${workspaceFolder}/node_modules/**/*.js",
          "<node_internals>/**/*.js"
        ]
      }
    ]
  }
node.js debugging next.js
2个回答
0
投票

您需要确保您的 Docker 调试器端口已映射到您的主机端口。

docker-compose.yml:

services:
  app:
    ports:
      - '3000:3000'
      - '9229:9229' # ← this

…否则调试器正在侦听 Docker 内部的端口 9229,并且客户端尝试连接到主机上的端口 9229,但两者之间没有桥梁。 这也是我的 launch.json:

{ "version": "0.2.0", "configurations": [ { "name": "Next.js Docker", "type": "node", "request": "attach", "port": 9229, "address": "localhost", "localRoot": "${workspaceFolder}", "remoteRoot": "/app/" } ] }

...以及我的 package.json 中的脚本:

{ "scripts": { "dev": "NODE_OPTIONS='--inspect=0.0.0.0:9228' next dev" } }

注意:

--inspect 标志使用端口

9228
,而不是
9229
,因为出于某种原因生成了两个调试器:
> @ dev /home/node/app
> NODE_OPTIONS='--inspect=0.0.0.0:9228' next dev

Debugger listening on ws://0.0.0.0:9228/f34f0a1c-d081-440c-afd1-41d76a99c9ad
For help, see: https://nodejs.org/en/docs/inspector
Debugger listening on ws://0.0.0.0:9229/b61d2932-2175-42aa-ad39-3eb41b042358
For help, see: https://nodejs.org/en/docs/inspector
   the --inspect option was detected, the Next.js router server should be inspected at 0.0.0.0:9229.

通过使用 
9228

我可以获得正确的生成点

9229
    


-1
投票
© www.soinside.com 2019 - 2024. All rights reserved.