Depuración
Esta documentación explica cómo puede depurar el código frontend y backend de su aplicación Next.js con soporte completo de mapas de origen, utilizando el depurador de VS Code o Chrome DevTools.
Cualquier depurador que pueda conectarse a Node.js también puede usarse para depurar una aplicación Next.js. Puede encontrar más detalles en la Guía de depuración de Node.js.
Depuración con VS Code
Cree un archivo llamado .vscode/launch.json
en la raíz de su proyecto con el siguiente contenido:
{
"version": "0.2.0",
"configurations": [
{
"name": "Next.js: depuración del lado del servidor",
"type": "node-terminal",
"request": "launch",
"command": "npm run dev"
},
{
"name": "Next.js: depuración del lado del cliente",
"type": "chrome",
"request": "launch",
"url": "http://localhost:3000"
},
{
"name": "Next.js: depuración completa",
"type": "node-terminal",
"request": "launch",
"command": "npm run dev",
"serverReadyAction": {
"pattern": "- Local:.+(https?://.+)",
"uriFormat": "%s",
"action": "debugWithChrome"
}
}
]
}
npm run dev
puede reemplazarse con yarn dev
si está usando Yarn. Si está cambiando el número de puerto en el que inicia su aplicación, reemplace el 3000
en http://localhost:3000
con el puerto que esté utilizando.
Ahora vaya al panel de Depuración (Ctrl+Shift+D
en Windows/Linux, ⇧+⌘+D
en macOS), seleccione una configuración de inicio y presione F5
o seleccione Depurar: Iniciar depuración desde la Paleta de comandos para comenzar su sesión de depuración.
Uso del depurador en Jetbrains WebStorm
Haga clic en el menú desplegable que lista la configuración de tiempo de ejecución y seleccione Editar configuraciones...
. Cree una configuración de depuración Javascript Debug
con http://localhost:3000
como URL. Personalícelo a su gusto (por ejemplo, navegador para depuración, guardar como archivo de proyecto) y haga clic en OK
. Ejecute esta configuración de depuración y el navegador seleccionado debería abrirse automáticamente. En este punto, debería tener 2 aplicaciones en modo de depuración: la aplicación node de NextJS y la aplicación cliente/navegador.
Depuración con Chrome DevTools
Código del lado del cliente
Inicie su servidor de desarrollo como de costumbre ejecutando next dev
, npm run dev
o yarn dev
. Una vez que el servidor se inicie, abra http://localhost:3000
(o su URL alternativa) en Chrome. A continuación, abra las Herramientas para desarrolladores de Chrome (Ctrl+Shift+J
en Windows/Linux, ⌥+⌘+I
en macOS) y vaya a la pestaña Sources.
Ahora, cada vez que su código del lado del cliente alcance una declaración debugger
, la ejecución del código se pausará y ese archivo aparecerá en el área de depuración. También puede presionar Ctrl+P
en Windows/Linux o ⌘+P
en macOS para buscar un archivo y establecer puntos de interrupción manualmente. Tenga en cuenta que al buscar aquí, sus archivos fuente tendrán rutas que comienzan con webpack://_N_E/./
.
Código del lado del servidor
Para depurar código de Next.js del lado del servidor con Chrome DevTools, necesita pasar la bandera --inspect
al proceso subyacente de Node.js:
NODE_OPTIONS='--inspect' next dev
Si está usando npm run dev
o yarn dev
, entonces debe actualizar el script dev
en su package.json
:
{
"scripts": {
"dev": "NODE_OPTIONS='--inspect' next dev"
}
}
Iniciar el servidor de desarrollo de Next.js con la bandera --inspect
se verá algo así:
Debugger listening on ws://127.0.0.1:9229/0cf90313-350d-4466-a748-cd60f4e47c95
For help, see: https://nodejs.org/en/docs/inspector
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
Tenga en cuenta que ejecutar
NODE_OPTIONS='--inspect' npm run dev
oNODE_OPTIONS='--inspect' yarn dev
no funcionará. Esto intentaría iniciar múltiples depuradores en el mismo puerto: uno para el proceso npm/yarn y otro para Next.js. Entonces obtendría un error comoStarting inspector on 127.0.0.1:9229 failed: address already in use
en su consola.
Una vez que el servidor se inicie, abra una nueva pestaña en Chrome y visite chrome://inspect
, donde debería ver su aplicación Next.js dentro de la sección Remote Target. Haga clic en inspect debajo de su aplicación para abrir una ventana separada de DevTools, luego vaya a la pestaña Sources.
La depuración del código del lado del servidor aquí funciona de manera similar a la depuración del código del lado del cliente con Chrome DevTools, excepto que cuando busca archivos aquí con Ctrl+P
o ⌘+P
, sus archivos fuente tendrán rutas que comienzan con webpack://{nombre-de-la-aplicación}/./
(donde {nombre-de-la-aplicación}
se reemplazará con el nombre de su aplicación según su archivo package.json
).
Depuración en Windows
Los usuarios de Windows pueden encontrar un problema al usar NODE_OPTIONS='--inspect'
ya que esa sintaxis no es compatible con plataformas Windows. Para solucionar esto, instale el paquete cross-env
como dependencia de desarrollo (-D
con npm
y yarn
) y reemplace el script dev
con lo siguiente.
{
"scripts": {
"dev": "cross-env NODE_OPTIONS='--inspect' next dev"
}
}
cross-env
establecerá la variable de entorno NODE_OPTIONS
independientemente de la plataforma en la que se encuentre (incluidos Mac, Linux y Windows) y le permitirá depurar de manera consistente en todos los dispositivos y sistemas operativos.
Bueno saber: Asegúrese de que Windows Defender esté desactivado en su máquina. Este servicio externo verificará cada archivo leído, lo que según informes aumenta considerablemente el tiempo de Fast Refresh con
next dev
. Este es un problema conocido, no relacionado con Next.js, pero sí afecta el desarrollo con Next.js.
Más información
Para aprender más sobre cómo usar un depurador de JavaScript, consulte la siguiente documentación: