build - Next.js CLI - 在本地运行 dev 时是否可以预先构建某些路由?
问题描述
我是一个拥有基于 Next.js 构建的企业应用程序的组织的一员,随着它的发展,本地开发体验一直在下降。主要问题是我们的页面/api
在加载时会多次调用路由,而这些调用是在您运行时懒惰地构建的yarn dev
,因此在发生这种情况时您总是被迫坐在浏览器中等待。
我一直在想,如果我们能够在运行时立即预先构建所有/api
路由可能会更好yarn dev
,这样在打开浏览器时我们会获得更好的体验。我查看了CLI 文档,但似乎唯一的选项dev
是-p
(端口)和-H
(主机)。我也不认为yarn build
先运行会起作用,因为我假设 build 和 dev 命令之间的构建输出完全不同。
有谁知道这是否可能?任何帮助表示赞赏,谢谢!
解决方案
我不相信有办法预先构建它们,但你可以告诉 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,
...
}
}
推荐阅读
- java - Java 将数字拆分为数字的算法
- html - 如何将主要和辅助引导 wp 菜单合并为一个用于移动设备
- angular - 如何在 Ionic-3 中执行 CRUD 操作?
- deep-learning - 为意大利语发布谷歌 BERT 的单一语言模型是否值得?
- swift - Swift 4.2 中 Codility GenomicRangeQuery 的前缀 Sum Coding Challenge 的解释
- h2o - 如何解释 H2O 混淆矩阵的行和列
- c++ - OpenAL alDistanceModel 增益/衰减
- python - 如何在代码中获取 argparse 参数的子集
- liferay - Liferay 7.1:只有一个节点的集群(测试环境)
- yii - Yii2:选择下拉列表中的项目时设置文本字段的值