exportPathMap
Esta característica es exclusiva de
next exporty actualmente está obsoleta en favor degetStaticPathsconpagesogenerateStaticParamsconapp.
Ejemplos
exportPathMap permite especificar un mapeo de rutas de solicitud a destinos de página, para ser usado durante la exportación. Las rutas definidas en exportPathMap también estarán disponibles al usar next dev.
Comencemos con un ejemplo, para crear un exportPathMap personalizado para una aplicación con las siguientes páginas:
pages/index.jspages/about.jspages/post.js
Abre next.config.js y agrega la siguiente configuración de exportPathMap:
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' } },
}
},
}Importante: el campo
queryenexportPathMapno puede usarse con páginas optimizadas estáticamente de forma automática o páginas congetStaticPropsya que se renderizan como archivos HTML en el momento de la construcción y no se puede proporcionar información adicional de consulta durantenext export.
Las páginas se exportarán como archivos HTML, por ejemplo, /about se convertirá en /about.html.
exportPathMap es una función async que recibe 2 argumentos: el primero es defaultPathMap, que es el mapa predeterminado usado por Next.js. El segundo argumento es un objeto con:
dev-truecuandoexportPathMapse llama en desarrollo.falseal ejecutarnext export. En desarrollo,exportPathMapse usa para definir rutas.dir- Ruta absoluta al directorio del proyectooutDir- Ruta absoluta al directorioout/(configurable con-o). Cuandodevestrue, el valor deoutDirseránull.distDir- Ruta absoluta al directorio.next/(configurable con la opcióndistDir)buildId- El ID de construcción generado
El objeto devuelto es un mapa de páginas donde la key es el pathname y el value es un objeto que acepta los siguientes campos:
page:String- la página dentro del directoriopagespara renderizarquery:Object- el objetoquerypasado agetInitialPropsdurante el prerenderizado. Por defecto es{}
El
pathnameexportado también puede ser un nombre de archivo (por ejemplo,/readme.md), pero puede ser necesario configurar el encabezadoContent-Typecomotext/htmlal servir su contenido si es diferente a.html.
Agregar una barra diagonal final
Es posible configurar Next.js para exportar páginas como archivos index.html y requerir barras diagonales finales, /about se convierte en /about/index.html y se puede enrutar mediante /about/. Este era el comportamiento predeterminado antes de Next.js 9.
Para volver a esta configuración y agregar una barra diagonal final, abre next.config.js y habilita la opción trailingSlash:
module.exports = {
trailingSlash: true,
}Personalizando el directorio de salida
next export usará out como directorio de salida predeterminado, puedes personalizarlo usando el argumento -o, así:
next export -o outdirAdvertencia: Usar
exportPathMapestá obsoleto y es reemplazado porgetStaticPathsdentro depages. No recomendamos usarlos juntos.