我正在尝试通过我的 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"
]
}
]
}
您需要确保您的 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
。