Capítulo 388 de 456
Página de entrada da configuração do Next.js: formato do arquivo next.config.js/.mjs/.ts, formas de definição (objeto, função, função async, por phase) e índice de todas as opções disponíveis.
NextConfignext.config pode exportar uma função (phase, { defaultConfig }) => config, inclusive asyncnext/constants (ex.: PHASE_DEVELOPMENT_SERVER)next/experimental/testing/server expõe unstable_getResponseFromNextConfig para testar headers/redirects/rewrites do config sem subir o servidorconst { PHASE_DEVELOPMENT_SERVER } = require('next/constants')
module.exports = (phase, { defaultConfig }) => {
if (phase === PHASE_DEVELOPMENT_SERVER) {
return { /* development only config options here */ }
}
return { /* config options for all phases except development here */ }
}
import {
getRedirectUrl,
unstable_getResponseFromNextConfig,
} from 'next/experimental/testing/server'
const response = await unstable_getResponseFromNextConfig({
url: 'https://nextjs.org/test',
nextConfig: {
async redirects() {
return [{ source: '/test', destination: '/test2', permanent: false }]
},
},
})
expect(response.status).toEqual(307)
expect(getRedirectUrl(response)).toEqual('https://nextjs.org/test2')
redirects sem precisar rodar o servidor completo (mas não considera proxy/filesystem routes).Lista de opções indexadas nesta página (cada uma é um capítulo próprio quando cobre este lote): adapterPath, allowedDevOrigins, assetPrefix, basePath, bundlePagesRouterDependencies, compress, crossOrigin, deploymentId, devIndicators, distDir, env, exportPathMap, generateBuildId, generateEtags, headers, httpAgentOptions, images, logging, onDemandEntries, optimizePackageImports, output, pageExtensions, poweredByHeader, productionBrowserSourceMaps, experimental.proxyClientMaxBodySize, reactStrictMode, redirects, rewrites, serverExternalPackages, trailingSlash, transpilePackages, turbopack, turbopackChunking, typescript, urlImports, useLightningcss, useTypeScriptCli, webpack, webVitalsAttribution.
next.config.js não passa por Webpack/Babel, roda direto no Node.cjs/.cts: extensões não suportadasunstable_getResponseFromNextConfig só considera o next.config.js, resultado pode divergir de produção (proxy/filesystem routes não entram)