我正在一个NextJS项目中,我们计划按here所述对页面进行静态HTML导出。
在这里,是我想使用的方案:
假设我们已经静态生成了以下页面。
关于/ product1
关于/ product2
关于/ product3
在一天的过程中,product1的可用性已更改。有没有一种方法可以只对about / product1进行静态导出,而无需触摸先前已导出的其他页面。
答案 0 :(得分:2)
根据您的示例,您应该执行以下步骤:
创建配置文件以设置自定义exportMap
:
// next.config.js
module.exports = {
exportPathMap: async function(
defaultPathMap,
{ dev, dir, outDir, distDir, buildId }
) {
return {
// only include the pages that you want to export
'about/product1': { page: 'about/product1' },
}
},
}
构建和导出确保设置其他输出文件夹。例如,如果您的构建和导出脚本名为bexport
,而您想将新的导出文件夹命名为“ out2”,则可以使用:
yarn bexport -o out2
警告:如果您未指定其他输出文件夹,则仅about/product1
将被重新导出到原始输出文件夹,而about/product2
和about/product3
将被删除,因为它们不包含在当前的exportMap
设置中。
将重新导出的文件移动到包含所有导出页面的文件夹中,以覆盖about/product1
的先前版本:
mv out2/about/product1.html out/about/