exportPathMap
Cette fonctionnalité est exclusive à
next exportet est actuellement obsolète, remplacée pargetStaticPathsavecpagesougenerateStaticParamsavecapp.
Exemples
exportPathMap vous permet de spécifier un mappage entre les chemins de requête et les destinations de pages, à utiliser lors de l'export. Les chemins définis dans exportPathMap seront également disponibles lors de l'utilisation de next dev.
Commençons par un exemple pour créer un exportPathMap personnalisé pour une application avec les pages suivantes :
pages/index.jspages/about.jspages/post.js
Ouvrez next.config.js et ajoutez la configuration exportPathMap suivante :
module.exports = {
exportPathMap: async function (
defaultPathMap,
{ dev, dir, outDir, distDir, buildId }
) {
return {
'/': { page: '/' },
'/about': { page: '/about' },
'/p/hello-nextjs': { page: '/post', query: { title: 'hello-nextjs' } },
'/p/learn-nextjs': { page: '/post', query: { title: 'learn-nextjs' } },
'/p/deploy-nextjs': { page: '/post', query: { title: 'deploy-nextjs' } },
}
},
}Bon à savoir : le champ
querydansexportPathMapne peut pas être utilisé avec les pages automatiquement optimisées statiquement ou les pagesgetStaticPropscar elles sont rendues en fichiers HTML au moment de la construction et des informations de requête supplémentaires ne peuvent pas être fournies pendantnext export.
Les pages seront alors exportées sous forme de fichiers HTML, par exemple /about deviendra /about.html.
exportPathMap est une fonction async qui reçoit 2 arguments : le premier est defaultPathMap, qui est la carte par défaut utilisée par Next.js. Le second est un objet avec :
dev-truelorsqueexportPathMapest appelé en développement.falselors de l'exécution denext export. En développement,exportPathMapest utilisé pour définir les routes.dir- Chemin absolu vers le répertoire du projetoutDir- Chemin absolu vers le répertoireout/(configurable avec-o). Lorsquedevesttrue, la valeur deoutDirseranull.distDir- Chemin absolu vers le répertoire.next/(configurable avec la configurationdistDir)buildId- L'identifiant de build généré
L'objet retourné est une carte de pages où la clé est le pathname et la valeur est un objet qui accepte les champs suivants :
page:String- la page dans le répertoirepagesà rendrequery:Object- l'objetquerypassé àgetInitialPropslors du pré-rendu. Par défaut{}
Le
pathnameexporté peut aussi être un nom de fichier (par exemple/readme.md), mais vous devrez peut-être définir l'en-têteContent-Typesurtext/htmllors de la diffusion de son contenu s'il est différent de.html.
Ajout d'une barre oblique finale
Il est possible de configurer Next.js pour exporter les pages sous forme de fichiers index.html et exiger des barres obliques finales, /about devient /about/index.html et est accessible via /about/. C'était le comportement par défaut avant Next.js 9.
Pour revenir à cette configuration et ajouter une barre oblique finale, ouvrez next.config.js et activez la configuration trailingSlash :
module.exports = {
trailingSlash: true,
}Personnalisation du répertoire de sortie
next export utilisera out comme répertoire de sortie par défaut. Vous pouvez le personnaliser en utilisant l'argument -o, comme ceci :
next export -o outdirAvertissement : L'utilisation de
exportPathMapest obsolète et est remplacée pargetStaticPathsdanspages. Nous ne recommandons pas de les utiliser ensemble.