只要您只使用导出支持的功能,就可以导出 next.js 应用程序。
从文档中:
https://github.com/zeit/next.js/#static-html-export
这是一种无需任何 Node.js 服务器即可将 Next.js 应用程序作为独立静态应用程序运行的方法。导出应用程序几乎支持 Next.js 的所有功能,包括动态 url、预取、预加载和动态导入。
像往常一样使用 Next.js 开发您的应用程序。然后创建一个自定义 Next.js 配置,如下所示:
// next.config.js
module.exports = {
exportPathMap: function() {
return {
'/': { page: '/' },
'/about': { page: '/about' },
'/readme.md': { page: '/readme' },
'/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' } }
}
}
}
在那里,您指定需要导出为静态 HTML 的页面。
然后只需运行这些命令: next build next export
关于限制:
限制使用下一次导出,我们会在您运行下一次导出命令时构建您的应用程序的 HTML 版本。届时,我们将运行您页面的 getInitialProps 函数。
因此,您只能使用传递给 getInitialProps 的上下文对象的路径名、查询和 asPath 字段。您不能使用 req 或 res 字段。
基本上,当我们预先构建 HTML 文件时,您将无法动态呈现 HTML 内容。如果需要,您需要在下次启动时运行您的应用程序。