【发布时间】:2019-06-14 23:07:49
【问题描述】:
我正在使用带有 Netlify CMS 的 Gatsby。我使用 gatsby-transformer-sharp 进行各种图像处理。
在 Netlify CMS 中,如果用户删除图片,frontmatter 值会变为空字符串,例如:
my-blog-post.md:
---
image: ''
---
当我查询 Graphql 时,这会导致 gatsby-transformer-sharp 出错:
Error Field "image" must not have a selection since type "String" has no subfields.
这似乎是因为 Gatsby/Graphql 已将图像字段推断为字符串。
所以我创建了一个schema.md 文件,所以总会有至少一个带有有效图像的条目:
_schema.md:
---
image: /some-dummy-image.jpg
---
这似乎部分解决了问题 - 构建只是偶尔失败。但它确实仍然失败。我认为它必须从它遇到的第一个降价文件中推断出它的架构——有时它首先找到_schema.md,有时它首先找到my-blog-post.md。
有没有人设法解决这个问题?
【问题讨论】:
-
目前还没有,但似乎有什么事情要发生了——现在每个人都在使用隐藏的虚拟帖子(在查询中被过滤掉了)...you can see the discussion here
-
谢谢 - 我已经在使用 'dummy post' 方法(我称之为
_schema.md)。问题是这有时会失败。有时 Gatsby 会错误地将image字段推断为字符串(因为my-blog-post.md包含image: '')。我不确定 Gatsby 在推断架构时如何决定要使用的 which 文件。我在我的虚拟帖子文件名中添加了一个下划线,这样当从文件系统读取时它会按字母顺序排在第一位,但它并不总是有效。
标签: gatsby