Capítulo 400 de 456

exportPathMap

Core Idea

API legada e depreciada, exclusiva de next export, para mapear paths de request customizados a páginas de destino durante export estático; substituída por getStaticPaths/generateStaticParams.

Key Concepts

  • exportPathMap: função async que recebe (defaultPathMap, { dev, dir, outDir, distDir, buildId }) e retorna um mapa { pathname: { page, query } }
  • dev: true quando chamado em desenvolvimento (define rotas), false em next export
  • query em exportPathMap: não pode ser usado com páginas estaticamente otimizadas nem getStaticProps (renderizadas em build time)
  • Customizing output directory: next export -o outdir sobrescreve o default out

Code Examples

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' } },
    }
  },
}
  • O que demonstra: mapear paths customizados (/p/hello-nextjs) para uma página com query específica (/post?title=hello-nextjs).
module.exports = {
  trailingSlash: true,
}
  • O que demonstra: exportar como index.html com trailing slash (/about/index.html, roteável via /about/).
next export -o outdir
  • O que demonstra: customizar o diretório de saída do export.

Anti-patterns

  • Usar exportPathMap junto de getStaticPaths: getStaticPaths sobrescreve, não recomendado combinar os dois
  • Usar em projeto novo: API legada e deprecada, preferir getStaticPaths (Pages) ou generateStaticParams (App Router)

Key Takeaways

  1. exportPathMap também define rotas em next dev, não só no export
  2. /about exporta como /about.html por padrão, ou /about/index.html com trailingSlash: true
  3. Substituto moderno: getStaticPaths (Pages Router) ou generateStaticParams (App Router)

Connects To

  • distDir (ch398): valor passado como argumento distDir na função de exportPathMap
  • getStaticPaths / generateStaticParams: substitutos recomendados