経緯
GatsbyでWeb制作をしており、CMS(※)にはContentfulを使っています。Contentfulのデータを扱うために必要なプラグイン gatsby-source-contentful をインストールし、環境変数を渡して開発サーバを$gatsby develop
で起動したらエラーが発生しました。
(※)Contents Management Systemの略。WordPressが有名。
環境
- macOS Big Sur(ver 11.2.3)
- bash 3.2.57
実行コマンド
CONTENTFUL_SPACE_ID=xxxxxx CONTENTFUL_ACCESS_TOKEN=xxxxxx CONTENTFUL_HOST=cdn.contentful.com gatsby develop -H 0.0.0.0
ID、Tokenは公開できないので、xxxxxxに置き換えてあります。
エラー内容
Encountered an error parsing the provided GraphQL type definitions: Syntax Error: Unexpected Name "implements" 1 | > 2 | interface ContentfulEntry implements Node { | ^ 3 | contentful_id: String! 4 | id: ID! 5 | node_locale: String! 6 | } 7 |
解決方法
$yarn upgrade --latest
でGatsbyのバージョンをアップグレードしたらエラーが消えました。
原因
エラー発生直後に$gatsby -v
コマンドで確認したバージョンは次の通りでした。
Gatsby CLI version: 3.2.0 Gatsby version: 2.32.3
一方、Webで調べると、gatsby-source-contentful(ver.5)はGatsbyのバージョン3以上が求められていますよ、と書かれているQ&Aを発見。
gatsby-source-contentful のバージョンは不明でしたが、上述の通り$yarn upgrade --latest
によってGatsby versionが3.2.1に更新されたことで無事解決。
おわりに
バージョンが古いことによるパッケージの不整合はよくありますね。stack overflowに同じエラーでのQ&Aがあって助かりました。