我使用NextJS生成静态页面列表。
所有页面都需要一个大的静态Javascript对象,它需要几分钟来初始化(它包含解析许多其他文件的结果)。
const bigData = initializeBigData(); // <- called for every page, instead once
export async function getStaticProps({ params }) {
return { bigData[params.slug] }; // ...
}不幸的是,我无法找到一次初始化此数据对象的方法。相反,每次创建页面时,缓慢的initializeBigData()都会运行,这使得构建非常慢。
我试过以下几种方法:
npm run build --threads=1所有这些都改变不了什么,在构建站点时,每个页面都需要长initializeBigData()。
如果可能的话,我不想使用自定义服务器。
如何在NextJS项目的构建过程中只初始化一次对象?
发布于 2021-09-10 20:38:45
这里有一个相关的讨论,https://github.com/vercel/next.js/discussions/15054
但我会用:
if (!global.font) {
global.font = fs.readFileSync("fonts/Somefont.ttf");
}https://stackoverflow.com/questions/64712126
复制相似问题