首页 > 解决方案 > Next.js CLI - 在本地运行 dev 时是否可以预先构建某些路由?

问题描述

我是一个拥有基于 Next.js 构建的企业应用程序的组织的一员,随着它的发展,本地开发体验一直在下降。主要问题是我们的页面/api在加载时会多次调用路由,而这些调用是在您运行时懒惰地构建的yarn dev,因此在发生这种情况时您总是被迫坐在浏览器中等待。

我一直在想,如果我们能够在运行时立即预先构建所有/api路由可能会更好yarn dev,这样在打开浏览器时我们会获得更好的体验。我查看了CLI 文档,但似乎唯一的选项dev-p(端口)和-H(主机)。我也不认为yarn build先运行会起作用,因为我假设 build 和 dev 命令之间的构建输出完全不同。

有谁知道这是否可能?任何帮助表示赞赏,谢谢!

标签: buildnext.js

解决方案


我不相信有办法预先构建它们,但你可以告诉 Next 在丢弃和重建之前保留它们多长时间。查看onDemandEntries文档。大约一年前,我们遇到了一个类似的问题,并在我们的一个大项目中解决了这个问题next.config.js

const { PHASE_DEVELOPMENT_SERVER } = require("next/constants")

module.exports = (phase, {}) => {
  let devOnDemandEntries = {}
  if (phase === PHASE_DEVELOPMENT_SERVER) {
    devOnDemandEntries = {
      // period (in ms) where the server will keep pages in the buffer
      maxInactiveAge: 300 * 1000,
      // number of pages that should be kept simultaneously without being disposed
      pagesBufferLength: 5,
    }
  }
  return {
    onDemandEntries,
    ...
  }
}

推荐阅读