Empezar
Instala el paquete, añádelo al layout raíz y ejecuta next dev.
1. Instala
pnpm add -D @angelitolm/next-toolbarnpm y yarn funcionan igual (npm i -D …, yarn add -D …). Instálala como dependencia de desarrollo: nunca se renderiza en producción.
2. Añádela al layout raíz
import { NextToolbar } from '@angelitolm/next-toolbar'
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en">
<body>
{children}
<NextToolbar />
</body>
</html>
)
}NextToolbar es un client component (el paquete incluye la directiva 'use client'), así que puedes renderizarlo desde un layout que sea Server Component sin envolverlo.
Ponla en el layout raíz para que sobreviva a la navegación entre rutas y mantenga su conexión con el servidor de desarrollo.
3. next.config.ts recomendado
import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
// Next's own dev indicator sits bottom-left by default and overlaps the toolbar.
devIndicators: { position: 'top-right' },
// Next 16 only: server timing, fetches, exact route patterns and the profiler.
experimental: { requestInsights: true },
}
export default nextConfigLas dos opciones son opcionales:
- Sin
devIndicators.position, el indicador redondo "N" de Next queda encima del borde izquierdo de la barra. También puedes desactivarlo condevIndicators: false. - Sin
requestInsights(o en Next 15) la barra sigue mostrando estado, ruta, modo de render, tiempos del cliente, errores del cliente y versiones, pero no los tiempos del servidor, los fetches, la corrección del modo de render por no-store ni el profiler. Consulta Compatibilidad.
4. Añade un error boundary
Recomendado
Si una página lanza un error al renderizar y no hay app/error.tsx, Next sustituye todo el layout raíz por su fallback, y la barra desaparece con él.
Un boundary mínimo mantiene el layout, y por tanto la barra, en pantalla:
'use client'
export default function Error({ error }: { error: Error }) {
return <h1>Something went wrong: {error.message}</h1>
}5. Ejecuta
pnpm devAbre cualquier página. La barra aparece como una franja a lo largo de la parte inferior de la ventana:
- pasa el ratón por cualquier segmento para ver los detalles;
- haz clic en el id de la petición (
# f9b45c) para abrir el profiler; - haz clic en el logo o en el botón de cerrar para minimizarla a un círculo.
Producción
No tienes que hacer nada. El componente comprueba process.env.NODE_ENV !== 'development' y devuelve null, así que no renderiza nada en producción y nunca abre una conexión. Como Next incrusta NODE_ENV en tiempo de build, el minificador también puede eliminar el código inalcanzable de la barra. No necesitas importarla de forma condicional.