exportPathMap
Esta característica es exclusiva de
next export
y actualmente está obsoleta en favor degetStaticPaths
conpages
ogenerateStaticParams
conapp
.
Ejemplos
exportPathMap
te 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.js
pages/about.js
pages/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
query
enexportPathMap
no puede usarse con páginas optimizadas estáticamente de forma automática o páginas congetStaticProps
ya que se renderizan como archivos HTML en el momento de 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
-true
cuandoexportPathMap
se llama en desarrollo.false
al ejecutarnext export
. En desarrollo,exportPathMap
se usa para definir rutas.dir
- Ruta absoluta al directorio del proyectooutDir
- Ruta absoluta al directorioout/
(configurable con-o
). Cuandodev
estrue
, el valor deoutDir
seránull
.distDir
- Ruta absoluta al directorio.next/
(configurable condistDir
)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 directoriopages
a renderizarquery
:Object
- el objetoquery
pasado agetInitialProps
durante el prerenderizado. Por defecto es{}
El
pathname
exportado también puede ser un nombre de archivo (por ejemplo,/readme.md
), pero puede que necesites configurar el encabezadoContent-Type
comotext/html
al 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 es enrutable mediante /about/
. Este era el comportamiento predeterminado antes de Next.js 9.
Para volver a este comportamiento y agregar una barra diagonal final, abre next.config.js
y habilita la configuració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 outdir
Advertencia: Usar
exportPathMap
está obsoleto y es reemplazado porgetStaticPaths
dentro depages
. No recomendamos usarlos juntos.