microcmsio / gatsby-source-microcms

:memo: Source plugin for Gatsby from microCMS.
https://www.npmjs.com/package/gatsby-source-microcms
27 stars 8 forks source link

未入力のフィールドがある場合にビルドエラーが起きる #4

Open shibe97 opened 4 years ago

shibe97 commented 4 years ago

概要

microCMSのフィールドとして定義しているが、入稿画面で未入力のデータがあるとビルドエラーが起きる場合がある

リスト形式の場合

特定のフィールドがリスト内で全て存在していない場合にエラーが発生する

オブジェクト形式の場合

特定のフィールドが存在していない場合にエラーが発生する

shibe97 commented 4 years ago

他のヘッドレスCMSプラグインでも同様の問題が起きている。 https://github.com/gatsbyjs/gatsby/issues/2392

shibe97 commented 4 years ago

gatsby-node.jsにて下記のようにスキーマのデフォルト定義を行うことで回避ができる。

例:gatsbyobjectAPIにて、title, imageを任意設定にしたい場合

exports.createSchemaCustomization = ({ actions }) => {
  const { createTypes } = actions
  const typeDefs = `
    type MicrocmsGatsbyobject implements Node {
      title: String
      image: Image
    }
    type Image {
      url: String
    }
  `
  createTypes(typeDefs)
}