NextJS中页面的选择性静态html导出

时间:2019-11-15 06:34:57

标签: reactjs next.js server-side-rendering

我正在一个NextJS项目中,我们计划按here所述对页面进行静态HTML导出。

在这里,是我想使用的方案:

假设我们已经静态生成了以下页面。

关于/ product1

关于/ product2

关于/ product3

在一天的过程中,product1的可用性已更改。有没有一种方法可以只对about / product1进行静态导出,而无需触摸先前已导出的其他页面。

1 个答案:

答案 0 :(得分:2)

根据您的示例,您应该执行以下步骤:

步骤1

创建配置文件以设置自定义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' },
    }
  },
}

步骤2

构建和导出确保设置其他输出文件夹。例如,如果您的构建和导出脚本名为bexport,而您想将新的导出文件夹命名为“ out2”,则可以使用:

yarn bexport -o out2

警告:如果您未指定其他输出文件夹,则仅about/product1将被重新导出到原始输出文件夹,而about/product2about/product3将被删除,因为它们不包含在当前的exportMap设置中。

步骤3

将重新导出的文件移动到包含所有导出页面的文件夹中,以覆盖about/product1的先前版本:

mv out2/about/product1.html out/about/