Options de next.config.js

Next.js peut être configuré via un fichier next.config.js à la racine de votre répertoire de projet (par exemple, à côté de package.json) avec une exportation par défaut.

next.config.js
// @ts-check

/** @type {import('next').NextConfig} */
const nextConfig = {
  /* config options here */
}

module.exports = nextConfig

next.config.js est un module Node.js standard, pas un fichier JSON. Il est utilisé par le serveur Next.js et les phases de build, et n'est pas inclus dans le build navigateur.

Si vous avez besoin de modules ECMAScript, vous pouvez utiliser next.config.mjs :

next.config.mjs
// @ts-check

/**
 * @type {import('next').NextConfig}
 */
const nextConfig = {
  /* config options here */
}

export default nextConfig

Vous pouvez également utiliser une fonction :

next.config.mjs
// @ts-check

export default (phase, { defaultConfig }) => {
  /**
   * @type {import('next').NextConfig}
   */
  const nextConfig = {
    /* config options here */
  }
  return nextConfig
}

Depuis Next.js 12.1.0, vous pouvez utiliser une fonction asynchrone :

next.config.js
// @ts-check

module.exports = async (phase, { defaultConfig }) => {
  /**
   * @type {import('next').NextConfig}
   */
  const nextConfig = {
    /* config options here */
  }
  return nextConfig
}

phase est le contexte actuel dans lequel la configuration est chargée. Vous pouvez voir les phases disponibles. Les phases peuvent être importées depuis next/constants :

// @ts-check

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

module.exports = (phase, { defaultConfig }) => {
  if (phase === PHASE_DEVELOPMENT_SERVER) {
    return {
      /* development only config options here */
    }
  }

  return {
    /* config options for all phases except development here */
  }
}

Les lignes commentées sont l'endroit où vous pouvez placer les configurations autorisées par next.config.js, qui sont définies dans ce fichier.

Cependant, aucune de ces configurations n'est obligatoire, et il n'est pas nécessaire de comprendre ce que fait chaque configuration. À la place, recherchez les fonctionnalités que vous souhaitez activer ou modifier dans cette section et elles vous indiqueront quoi faire.

Évitez d'utiliser de nouvelles fonctionnalités JavaScript non disponibles dans votre version cible de Node.js. next.config.js ne sera pas analysé par Webpack, Babel ou TypeScript.

Cette page documente toutes les options de configuration disponibles :

assetPrefix

Apprenez à utiliser l'option de configuration assetPrefix pour configurer votre CDN.

basePath

Utilisez `basePath` pour déployer une application Next.js sous un sous-chemin d'un domaine.

Compression

Next.js fournit une compression gzip pour compresser le contenu rendu et les fichiers statiques, fonctionnant uniquement avec la cible serveur. En savoir plus ici.

crossOrigin

Utilisez l'option `crossOrigin` pour ajouter une balise crossOrigin aux balises `script` générées par `next/script` et `next/head`.

Indicateurs de développement

Les pages optimisées incluent un indicateur pour vous informer si elles sont optimisées statiquement. Vous pouvez le désactiver ici.

distDir

Définir un répertoire de build personnalisé à utiliser au lieu du répertoire .next par défaut.

Variables d'environnement (env)

Apprenez à ajouter et accéder aux variables d'environnement dans votre application Next.js au moment de la compilation.

eslint

Next.js signale par défaut les erreurs et avertissements ESLint lors des builds. Apprenez ici comment désactiver ce comportement.

exportPathMap

Personnalisez les pages qui seront exportées en tant que fichiers HTML lors de l'utilisation de `next export`.

generateBuildId

Configure l'identifiant de build (build id) utilisé pour identifier la version actuelle dans laquelle votre application est servie.

generateEtags

Next.js génère des étiquettes (etags) pour chaque page par défaut. Découvrez comment désactiver cette fonctionnalité ici.

En-têtes HTTP

Ajoutez des en-têtes HTTP personnalisés à votre application Next.js.

httpAgentOptions

Next.js utilise automatiquement HTTP Keep-Alive par défaut. Apprenez-en plus sur comment désactiver HTTP Keep-Alive ici.

Images

Configuration personnalisée pour le chargeur next/image

instrumentationHook

Utilisez l'option instrumentationHook pour configurer l'instrumentation dans votre application Next.js.

onDemandEntries

Configurez comment Next.js gère la conservation en mémoire et la libération des pages créées en développement.

optimizePackageImports

Référence API pour l'option de configuration Next.js optimizePackageImports

Sortie (output)

Next.js trace automatiquement les fichiers nécessaires à chaque page pour faciliter le déploiement de votre application. Découvrez son fonctionnement ici.

pageExtensions

Étendre les extensions de page par défaut utilisées par Next.js lors de la résolution des pages dans le routeur Pages.

poweredByHeader

Par défaut, Next.js ajoute l'en-tête `x-powered-by`. Apprenez ici comment le désactiver.

productionBrowserSourceMaps

Active la génération de source maps (cartes sources) pour le navigateur lors de la construction en production.

reactStrictMode

L'intégralité du runtime Next.js est désormais conforme au Mode Strict (Strict Mode). Apprenez comment l'activer

Redirections

Ajoutez des redirections à votre application Next.js.

Réécritures (rewrites)

Ajoutez des réécritures (rewrites) à votre application Next.js.

Configuration à l'exécution (Runtime Config)

Ajoutez une configuration côté client et serveur à votre application Next.js.

trailingSlash

Configurer les pages Next.js pour qu'elles se résolvent avec ou sans barre oblique finale.

transpilePackages

Transpile et bundle automatiquement les dépendances issues de packages locaux (comme dans les monorepos) ou de dépendances externes (`node_modules`).

turbo

Configurer Next.js avec des options spécifiques à Turbopack

TypeScript

Next.js signale les erreurs TypeScript par défaut. Apprenez ici comment désactiver ce comportement.

Importations depuis des URLs

Configurer Next.js pour autoriser l'importation de modules depuis des URLs externes (expérimental).

webpack

Apprenez à personnaliser la configuration webpack utilisée par Next.js

webVitalsAttribution

Apprenez à utiliser l'option webVitalsAttribution pour identifier la source des problèmes de Web Vitals.