Nextjs导出清除“ out”文件夹

我正在使用nextjs和本示例https://github.com/zeit/next.js/tree/master/examples/with-static-export

在next.config.js中,我有代码:

module.exports = {
  async exportPathMap(defaultPathMap,{ dev,dir,outDir,distDir,buildId,incremental }) {
    // we fetch our list of posts,this allow us to dynamically generate the exported pages
    const response = await fetch(
      'https://jsonplaceholder.typicode.com/posts?_limit=3'
    )
    const postList = await response.json()

    // tranform the list of posts into a map of pages with the pathname `/post/:id`
    const pages = postList.reduce(
      (pages,post) =>
        Object.assign({},pages,{
          [`/post/${post.id}`]: { page: '/post/[id]' },}),{}
    )

    // combine the map of post pages with the home
    return Object.assign({},{
      '/': { page: '/' },})
  },}

它获取3个帖子并生成文件-[id] .html-非常好!

但是现在我只需要获取新帖子并为此新帖子构建页面,但是很抱歉下一步导出,请删除所有文件并仅创建一个帖子。

我该怎么做才能保留旧帖子并在下一次导出时添加新帖子?

示例:

  • 第一个下一次导出,要求从api请求3个帖子
  • 在“ out”文件夹中生成3个帖子
  • 更改api网址并为1个新帖子运行下一个导出
  • 摘要,我的“出”目录中有3个旧帖子页面和1个新帖子页面

该怎么做?

matthewzxc 回答:Nextjs导出清除“ out”文件夹

下一步无法立即执行,但您可以对其进行设置。首先,您需要一个已经建立了页面的系统(数据库)。其次,您将需要某种与该数据库(api)进行通信的方法,以询问应构建 的哪些页面(例如,发送页面列表,并且api会告诉您哪些页面尚未生成) bene建立)。然后,告诉您的exportPathMap要构建哪些页面。最后,将构建的页面移出out并移到新的final / public目录中。

默认情况下,Next将生成/导出pages目录中的所有内容以及您在exportPathMap中设置的所有内容,并将所有内容都放在out目录中。您可以通过传递自定义exportPathMap来覆盖构建的 ,由您自己决定如何处理进入out目录的内容,因此可以将这些文件移动到不同的实际公共目录,并将它们与旧文件合并。

本文链接:https://www.f2er.com/2905085.html

大家都在问