在 netlify cms 和 gatsby js 中使图像可选

Make an image optional in netlify cms and gatsby js

我有一个相当简单的 Gatsby & Netlify CMS 站点。我无法应付使图像可选。对于 Netlify CMS,只需设置一个字段 required: false。我如何为 Gatsby 编写查询,这样当图像实际上是一个空字符串时我不会收到错误 'GraphQL Error Field "image" must not have a selection since type "String" has no subfields.' 因为它在我的应用程序中不是强制性的?有什么解决办法吗?

图像的 GraphQL 查询:

image {
  childImageSharp {
    fluid(maxWidth: 2048) 
      ...GatsbyImageSharpFluid
    }
  }
}

进入你的 gatsby-node.js,你必须定义一个 graphql 类型来处理这种情况。

exports.createSchemaCustomization = ({ actions }) => {
  const { createTypes } = actions;
  const typeDefs = `
    type MarkdownRemark implements Node {
      frontmatter: Frontmatter
    }
    
    type Frontmatter @infer {
      yourimage: File @fileByRelativePath,
    }
  `;
  createTypes(typeDefs);
};