Configuration personnalisée de Webpack
Bon à savoir : les modifications de la configuration webpack ne sont pas couvertes par semver, procédez à vos propres risques.
Avant de continuer à ajouter une configuration webpack personnalisée à votre application, assurez-vous que Next.js ne prend pas déjà en charge votre cas d'utilisation :
Certaines fonctionnalités fréquemment demandées sont disponibles sous forme de plugins :
Pour étendre notre utilisation de webpack
, vous pouvez définir une fonction qui étend sa configuration dans next.config.js
, comme suit :
La fonction
webpack
est exécutée trois fois, deux fois pour le serveur (runtime nodejs / edge) et une fois pour le client. Cela vous permet de distinguer la configuration client et serveur en utilisant la propriétéisServer
.
Le deuxième argument de la fonction webpack
est un objet avec les propriétés suivantes :
buildId
:String
- L'identifiant de build, utilisé comme identifiant unique entre les builds.dev
:Boolean
- Indique si la compilation se fera en mode développement.isServer
:Boolean
- Vauttrue
pour la compilation côté serveur, etfalse
pour la compilation côté client.nextRuntime
:String | undefined
- Le runtime cible pour la compilation côté serveur ; soit"edge"
ou"nodejs"
, vautundefined
pour la compilation côté client.defaultLoaders
:Object
- Les loaders par défaut utilisés en interne par Next.js :babel
:Object
- Configuration par défaut debabel-loader
.
Exemple d'utilisation de defaultLoaders.babel
:
nextRuntime
Notez que isServer
vaut true
lorsque nextRuntime
est "edge"
ou "nodejs"
. nextRuntime
"edge"
est actuellement réservé au middleware et aux composants serveur dans le runtime edge uniquement.