javascript - GatsbyJS:仅重建特定页面
问题描述
我想知道是否可以告诉 Gatsby 进程只修改特定页面。场景可能是:
您有一个包含数千篇文章的巨大博客。对于初始构建,我通过 GraphQL API 获取内容并为我的所有帖子创建所有 /post/:postId 页面。据我了解 GatsbyJS,当我想更改一篇或多篇文章时,我必须重新运行构建过程。但是:构建过程很慢,内容很多,告诉构建过程盖茨比只需要修改现有构建会容易得多。例如,我只想像这样更改帖子的标题:
const newPage = { ...page };
deletePage(page);
createPage({
...newPage,
context: {
...newPage.context,
title: 'My new Blog title',
},
});
有没有办法告诉 gatsby 只重建受影响的文件而不是重建所有内容?
另一种解决方案是始终从客户端上的 graphql API 获取数据,但随后我将失去 SSR 的好处以及仅提供静态 HTML 文件的好处。
解决方案
您所描述的称为增量构建。
在 github上的官方 Gatsby repo上有一个关于您的确切问题的问题。看起来您需要的功能将在接下来的几个版本中提供:
dominicfallows 于 18 天前发表评论
只是想更新一下,我的团队即将将 PR 发布到 Gatsby 存储库中,我们认为它可以实现增量构建。我们只是花一些时间来写一个好的 PR 并收紧代码,但是当我们完成后我会在这里更新(在下一周左右)。
所以答案是:
不,这还不可能。
但这将在接下来的几周或几个月内成为可能。至于如何实现,则需要等待官方文档或查看 issue 中链接的 PR。
推荐阅读
- javascript - javascript中keyup和keydown的工作有什么区别?
- c# - 为什么 Filestream 不使用我在 ASP.NET Core 中指定的目录?
- reactjs - React-Router:如何添加新组件并路由到向导的入职步骤?
- javascript - 如何分离和显示选择选项数据?
- python - 如何在 Mac 上将 .ui 转换为 .py
- c++ - C++(E0158 表达式必须是左值或函数指示符)和(错误 C2102 '&' 需要左值)
- symfony - 通过 Docker 执行 Symfony Demo 应用程序时权限被拒绝
- angular - Workbox:当文件在缓存中时获取事件
- java - 使用 Streams 将列表对象复制到另一个具有修改内容的列表对象
- opencv - 使用 OpenCV 复制 Gimp 的颜色->反转操作