Opciones de next.config.js
Next.js puede configurarse mediante un archivo next.config.js
en la raíz de tu directorio del proyecto (por ejemplo, junto a package.json
) con una exportación por defecto.
// @ts-check
/** @type {import('next').NextConfig} */
const nextConfig = {
/* opciones de configuración aquí */
}
module.exports = nextConfig
next.config.js
es un módulo normal de Node.js, no un archivo JSON. Es utilizado por el servidor de Next.js y en las fases de construcción, y no se incluye en el build del navegador.
Si necesitas módulos ECMAScript, puedes usar next.config.mjs
:
// @ts-check
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
/* opciones de configuración aquí */
}
export default nextConfig
También puedes usar una función:
// @ts-check
export default (phase, { defaultConfig }) => {
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
/* opciones de configuración aquí */
}
return nextConfig
}
Desde Next.js 12.1.0, puedes usar una función asíncrona:
// @ts-check
module.exports = async (phase, { defaultConfig }) => {
/**
* @type {import('next').NextConfig}
*/
const nextConfig = {
/* opciones de configuración aquí */
}
return nextConfig
}
phase
es el contexto actual en el que se carga la configuración. Puedes ver las fases disponibles. Las fases se pueden importar desde next/constants
:
// @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í */
}
}
Las líneas comentadas son el lugar donde puedes 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, busca las características que necesitas habilitar o modificar en esta sección y te mostrarán qué hacer.
Evita usar características nuevas de JavaScript que no estén disponibles en tu versión objetivo de Node.js.
next.config.js
no será analizado por Webpack, Babel o TypeScript.
Esta página documenta todas las opciones de configuración disponibles: