next.config.js

Next.js se puede configurar mediante un archivo next.config.js en la raíz de su directorio de proyecto (por ejemplo, junto a package.json) con una exportación por defecto.

next.config.js
// @ts-check

/** @type {import('next').NextConfig} */
const nextConfig = {
  /* opciones de configuración aquí */
}

module.exports = nextConfig

Módulos ECMAScript

next.config.js es un módulo normal de Node.js, no un archivo JSON. Es utilizado por el servidor y las fases de construcción de Next.js, y no se incluye en el build del navegador.

Si necesita módulos ECMAScript, puede usar next.config.mjs:

next.config.mjs
// @ts-check

/**
 * @type {import('next').NextConfig}
 */
const nextConfig = {
  /* opciones de configuración aquí */
}

export default nextConfig

Es bueno saber: Actualmente no se admiten archivos next.config con extensiones .cjs, .cts o .mts.

Configuración como Función

También puede usar una función:

next.config.mjs
// @ts-check

export default (phase, { defaultConfig }) => {
  /**
   * @type {import('next').NextConfig}
   */
  const nextConfig = {
    /* opciones de configuración aquí */
  }
  return nextConfig
}

Configuración Asíncrona

Desde Next.js 12.1.0, puede usar una función asíncrona:

next.config.js
// @ts-check

module.exports = async (phase, { defaultConfig }) => {
  /**
   * @type {import('next').NextConfig}
   */
  const nextConfig = {
    /* opciones de configuración aquí */
  }
  return nextConfig
}

Fase

phase es el contexto actual en el que se carga la configuración. Puede ver las fases disponibles. Las fases se pueden importar desde next/constants:

next.config.js
// @ts-check

const { PHASE_DEVELOPMENT_SERVER } = require('next/constants')

module.exports = (phase, { defaultConfig }) => {
  if (phase === PHASE_DEVELOPMENT_SERVER) {
    return {
      /* opciones de configuración solo para desarrollo aquí */
    }
  }

  return {
    /* opciones de configuración para todas las fases excepto desarrollo aquí */
  }
}

TypeScript

Si está usando TypeScript en su proyecto, puede usar next.config.ts para utilizar TypeScript en su configuración:

next.config.ts
import type { NextConfig } from 'next'

const nextConfig: NextConfig = {
  /* opciones de configuración aquí */
}

export default nextConfig

Las líneas comentadas son el lugar donde puede colocar las configuraciones permitidas por next.config.js, que están definidas en este archivo.

Sin embargo, ninguna de las configuraciones es obligatoria, y no es necesario entender qué hace cada una. En su lugar, busque las características que necesita habilitar o modificar en esta sección y le mostrarán qué hacer.

Evite usar nuevas características de JavaScript que no estén disponibles en su versión objetivo de Node.js. next.config.js no será analizado por Webpack o Babel.

Esta página documenta todas las opciones de configuración disponibles:

Pruebas Unitarias (experimental)

A partir de Next.js 15.1, el paquete next/experimental/testing/server contiene utilidades para ayudar a realizar pruebas unitarias en archivos next.config.js.

La función unstable_getResponseFromNextConfig ejecuta las funciones headers, redirects y rewrites de next.config.js con la información de solicitud proporcionada y devuelve NextResponse con los resultados del enrutamiento.

La respuesta de unstable_getResponseFromNextConfig solo considera campos de next.config.js y no tiene en cuenta middleware o rutas del sistema de archivos, por lo que el resultado en producción puede ser diferente al de la prueba unitaria.

import {
  getRedirectUrl,
  unstable_getResponseFromNextConfig,
} from 'next/experimental/testing/server'

const response = await unstable_getResponseFromNextConfig({
  url: 'https://nextjs.org/test',
  nextConfig: {
    async redirects() {
      return [{ source: '/test', destination: '/test2', permanent: false }]
    },
  },
})
expect(response.status).toEqual(307)
expect(getRedirectUrl(response)).toEqual('https://nextjs.org/test2')

allowedDevOrigins

Utilice `allowedDevOrigins` para configurar orígenes adicionales que puedan solicitar el servidor de desarrollo.

appDir

Habilita el Enrutador de Aplicación (App Router) para usar diseños (layouts), transmisión en flujo (streaming) y más.

assetPrefix

Aprenda a utilizar la opción de configuración assetPrefix para configurar su CDN.

authInterrupts

Aprenda cómo habilitar la opción de configuración experimental `authInterrupts` para utilizar `forbidden` y `unauthorized`.

basePath

Utilice `basePath` para desplegar una aplicación Next.js bajo un subdirectorio de un dominio.

cacheLife

Aprenda a configurar perfiles de caché personalizados con cacheLife en Next.js.

compresión

Next.js proporciona compresión gzip para comprimir el contenido renderizado y archivos estáticos, solo funciona con el objetivo de servidor. Aprende más sobre esto aquí.

crossOrigin

Utilice la opción `crossOrigin` para agregar una etiqueta crossOrigin en las etiquetas `script` generadas por `next/script`.

cssChunking

Utilice la opción `cssChunking` para controlar cómo se dividen los archivos CSS en su aplicación Next.js.

devIndicators

Opciones de configuración para el indicador en pantalla que proporciona contexto sobre la ruta actual que estás viendo durante el desarrollo.

distDir

Configure un directorio de compilación personalizado para usar en lugar del directorio predeterminado .next.

dynamicIO

Aprenda cómo habilitar la bandera dynamicIO en Next.js.

Variables de entorno (env)

Aprenda a agregar y acceder a variables de entorno en su aplicación Next.js durante el tiempo de compilación.

eslint

Next.js informa errores y advertencias de ESLint durante las compilaciones por defecto. Aprenda cómo desactivar este comportamiento aquí.

expireTime

Personaliza el tiempo de expiración stale-while-revalidate para páginas con ISR habilitado.

exportPathMap

Personaliza las páginas que se exportarán como archivos HTML cuando se utiliza `next export`.

generateBuildId

Configura el ID de compilación, que se utiliza para identificar la compilación actual en la que se está sirviendo su aplicación.

generateEtags

Next.js generará etags para cada página por defecto. Aprenda cómo desactivar la generación de etags aquí.

Encabezados

Agregue encabezados HTTP personalizados a su aplicación Next.js.

htmlLimitedBots

Especifique una lista de agentes de usuario que deben recibir metadatos de bloqueo.

httpAgentOptions

Next.js utilizará automáticamente HTTP Keep-Alive de forma predeterminada. Aprenda aquí cómo deshabilitar HTTP Keep-Alive.

imágenes

Configuración personalizada para el cargador de next/image

cacheHandler

Configura el caché de Next.js utilizado para almacenar y revalidar datos para usar cualquier servicio externo como Redis, Memcached u otros.

inlineCss

Habilitar soporte para CSS en línea.

Registro (logging)

Configura cómo se registran en la consola las solicitudes de datos cuando se ejecuta Next.js en modo de desarrollo.

mdxRs

Utilice el nuevo compilador Rust para compilar archivos MDX en el App Router.

onDemandEntries

Configure cómo Next.js eliminará y mantendrá en memoria las páginas creadas en desarrollo.

optimizePackageImports

Referencia de API para la opción de configuración optimizePackageImports de Next.js

output

Next.js rastrea automáticamente los archivos necesarios para cada página, lo que permite un despliegue sencillo de tu aplicación. Aprende cómo funciona aquí.

pageExtensions

Extienda las extensiones de página predeterminadas utilizadas por Next.js al resolver páginas en el Enrutador de Páginas (Pages Router).

poweredByHeader

Por defecto, Next.js agrega el encabezado `x-powered-by`. Aprende cómo desactivarlo aquí.

PPR (Prerrenderizado Parcial)

Aprende cómo habilitar el Prerrenderizado Parcial (PPR) en Next.js.

productionBrowserSourceMaps

Habilita la generación de mapas de origen (source maps) del navegador durante la compilación de producción.

reactCompiler

Habilita el Compilador de React para optimizar automáticamente el renderizado de componentes.

reactMaxHeadersLength

Longitud máxima de los encabezados emitidos por React que se añaden a la respuesta.

reactStrictMode

El entorno de ejecución completo de Next.js ahora cumple con el Modo Estricto, aprende cómo activarlo

Redirecciones

Agrega redirecciones a tu aplicación Next.js.

reescrituras (rewrites)

Agregue reescrituras a su aplicación Next.js.

sassOptions

Configura las opciones de Sass.

serverActions

Configura el comportamiento de las Acciones de Servidor (Server Actions) en tu aplicación Next.js.

serverComponentsHmrCache

Configura si las respuestas de fetch en Componentes del Servidor se almacenan en caché entre solicitudes de actualización HMR.

serverExternalPackages

Excluir dependencias específicas del empaquetado de Componentes del Servidor y usar el `require` nativo de Node.js.

staleTimes

Aprenda cómo anular el tiempo de invalidación de la caché del enrutador del lado del cliente (Client Router Cache).

staticGeneration*

Aprenda cómo configurar la generación estática en su aplicación Next.js.

Taint (marcado de objetos)

Habilita el marcado de objetos y valores como no seguros.

trailingSlash

Configuración de páginas en Next.js para resolver con o sin barra diagonal final.

transpilePackages

Transpila y empaqueta automáticamente dependencias de paquetes locales (como monorepos) o dependencias externas (`node_modules`).

turbopack

Configura Next.js con opciones específicas de Turbopack

typedRoutes

Habilita el soporte experimental para enlaces con tipado estático.

TypeScript

Next.js reporta errores de TypeScript por defecto. Aprende cómo desactivar este comportamiento aquí.

Importaciones desde URL

Configura Next.js para permitir la importación de módulos desde URLs externas.

useCache

Aprenda cómo habilitar la bandera experimental useCache en Next.js.

useLightningcss

Habilita el soporte experimental para Lightning CSS.

viewTransition

Habilitación de la API ViewTransition de React en App Router

webpack

Aprenda cómo personalizar la configuración de webpack utilizada por Next.js

webVitalsAttribution

Aprenda a utilizar la opción webVitalsAttribution para identificar el origen de problemas en Web Vitals.

On this page