gatsby :优化没有 'childImageSharp' graphql 字段的图像

gatsby : optimize images that do not have 'childImageSharp' graphql field

我正在使用带有 wordpress CMS 的 gatsby 在我的 gatsby 网络应用程序上显示即将发生的事件。我正在使用插件 gatsby-source-tribe-events 连接到 wordpress event calendar 插件并获取事件数据。

问题是我想使用 <GatsbyImage/>.

动态显示我的所有事件及其描述和图像

如您所知,要使用上述组件显示图像,每个项目 graphql 中必须有一个 childImageSharp 字段

我的问题是 gatsby-source-tribe-events 插件在查询图像时没有 childImageSharp 字段,所以我无法动态优化所有图像

有什么解决方法?当 childImageSharp 字段不存在时,如何使用 GatsbyImage?有没有办法将它添加到 graphql 架构中?

What is a workaround to this ? How can I use GatsbyImage when the childImageSharp field is not there ?

你不能。 GatsbyImage需要childImageSharp节点提供的一定量的数据。

gatsby-source-tribe-events 插件似乎没有人维护(最后一次提交是 2 年前)所以我认为作者没有升级它。

说你有两个选择(至少):

  • 如果您检测到不包含 childImage 节点的图像,则呈现标准 <img> 标记。在那里你可以应用延迟加载或其他库的任何其他模糊效果。
  • 选中gatsby-plugin-remote-images 从远程图像创建节点。我不知道这种方法是否符合您的要求或者是否可行。

Is there a way to add it to the graphql schema ?

这就是 gatsby-plugin-remote-images 会做的。图像需要由 Gatsby 的 transformers 和 sharps 处理以创建那些 childImageSharp 节点