首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NextJS:初始化一个对象一次

NextJS:初始化一个对象一次
EN

Stack Overflow用户
提问于 2020-11-06 09:38:44
回答 1查看 3K关注 0票数 6

我使用NextJS生成静态页面列表。

所有页面都需要一个大的静态Javascript对象,它需要几分钟来初始化(它包含解析许多其他文件的结果)。

代码语言:javascript
复制
const bigData = initializeBigData();   // <- called for every page, instead once

export async function getStaticProps({ params }) {
  return { bigData[params.slug] };  // ...
}

不幸的是,我无法找到一次初始化此数据对象的方法。相反,每次创建页面时,缓慢的initializeBigData()都会运行,这使得构建非常慢。

我试过以下几种方法:

  • 使用模块作为单例
  • 使用ES6类单例
  • 使用npm包一次
  • 将构建线程减少到1:npm run build --threads=1

所有这些都改变不了什么,在构建站点时,每个页面都需要长initializeBigData()

如果可能的话,我不想使用自定义服务器。

如何在NextJS项目的构建过程中只初始化一次对象?

EN

回答 1

Stack Overflow用户

发布于 2021-09-10 20:38:45

这里有一个相关的讨论,https://github.com/vercel/next.js/discussions/15054

但我会用:

代码语言:javascript
复制
  if (!global.font) {
    global.font = fs.readFileSync("fonts/Somefont.ttf");
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64712126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档