next export allows you to export your Next.js application to static HTML, which can be run standalone without the need of a Node.js server. It is recommended to only use
next export if you don't need any of the unsupported features requiring a server.
If you're looking to build a hybrid site where only some pages are prerendered to static HTML, Next.js already does that automatically. Learn more about Automatic Static Optimization and Incremental Static Regeneration.
Update your build script in
package.json to use
"build": "next build && next export"
npm run build will generate an
next export builds an HTML version of your app. During
getStaticPaths will generate an HTML file for each page in your
pages directory (or more for dynamic routes. Then,
next export will copy the already exported files into the correct directory.
getInitialProps will generate the HTML files during
next export instead of
The majority of core Next.js features needed to build a static site are supported, including:
Features that require a Node.js server, or dynamic logic that cannot be computed during the build process, are not supported:
It's possible to use the
getInitialProps API instead of
getStaticProps, but it comes with a few caveats:
getInitialProps cannot be used alongside
getStaticPaths on any given page. If you have dynamic routes, instead of using
getStaticPaths you'll need to configure the
exportPathMap parameter in your
next.config.js file to let the exporter know which HTML files it should output.
getInitialProps is called during export, the
res fields of its
context parameter will be empty objects, since during export there is no server running.
getInitialProps will be called on every client-side navigation, if you'd like to only fetch data at build-time, switch to
getInitialProps should fetch from an API and cannot use Node.js-specific libraries or the file system like
We recommend migrating towards
getInitialProps whenever possible.