Capítulo 301 de 456
Debugar Next.js (frontend e backend) com source maps completos via VS Code debugger, Chrome/Firefox DevTools ou WebStorm; qualquer debugger que anexa em Node.js funciona.
.vscode/launch.json: define configs separadas pra debug server-side (node-terminal + npm run dev -- --inspect), client-side (Chrome/Firefox) e full stack (node + --inspect no binário do Next.js).serverReadyAction: na config full stack, abre automaticamente o browser (debugWithEdge/debugWithChrome) quando o servidor sobe.--inspect: flag passada ao processo Node subjacente pra permitir debug server-side via chrome://inspect ou about:debugging.--inspect=0.0.0.0: libera debug remoto (fora de localhost), útil em Docker.NODE_OPTIONS=--inspect-brk: necessário pra usar --inspect-brk/--inspect-wait, que não podem ser passados como flag direta do next dev.{
"version": "0.2.0",
"configurations": [
{ "name": "Next.js: debug server-side", "type": "node-terminal", "request": "launch", "command": "npm run dev -- --inspect" },
{ "name": "Next.js: debug client-side", "type": "chrome", "request": "launch", "url": "http://localhost:3000" },
{
"name": "Next.js: debug full stack",
"type": "node",
"request": "launch",
"program": "${workspaceFolder}/node_modules/next/dist/bin/next",
"runtimeArgs": ["--inspect"],
"skipFiles": ["<node_internals>/**"],
"serverReadyAction": {
"action": "debugWithEdge",
"killOnServerStop": true,
"pattern": "- Local:.+(https?://.+)",
"uriFormat": "%s",
"webRoot": "${workspaceFolder}"
}
}
]
}
cwd: em setups como Turborepo, esquecer "cwd": "${workspaceFolder}/apps/web" quebra a config de debug.--inspect (ou NODE_OPTIONS=--inspect-brk pra variantes com breakpoint).