如何安排 npm 运行 在 Vercel(以前称为 Zeit Now)中构建 Next.js 应用程序每小时调用一次

How to schedule npm run build in Vercel (formerly Zeit Now) with Next.js app to be called every hour

我的应用程序利用 getStaticProps (SSG) 函数(在构建时从 api 获取)。

我想每小时 npm 运行 构建一次,以便应用程序可以从 api 获取并保持最新。

如有任何建议,我们将不胜感激。

我不推荐这样做。有比触发构建更好的解决方案。

它从 API 中获取什么样的数据?如果您请求的数据是动态的(构建时间除外),那么我不明白您为什么要使用意外功能。

也许对您的用例进行更多解释,我们可以建议更好的方法?

请检查。我会添加更多信息:

  • 将 SSR 与缓存策略一起使用,例如 Serverless Pre-Rendering
  • 使用 SSG 生成基本模板,然后使用 API 获取所需数据。缓存策略在这里也很重要:
module.exports = (req, res) => {
  // fetch from external API
  res.setHeader('Cache-Control', 's-maxage=3600, stale-while-revalidate')
}

我已通过 webhook from Zeit Now and scheduling a POST request every hour with Zapier 管理我的应用程序每小时触发一次构建。

Incremental Static Regeneration 在类似情况下对我来说效果非常好。只需将 revalidate 选项添加到您的 getStaticProps return 对象。