気付いたらGatsby v3が出ていました。移行はそこまで大変ではなさそうなので移行してみます。
何をするにもまず公式の移行ガイドをブラウザで開いて、移行作業をはじめる前の状況をcommitしておくのがよいです。
まずはGatsby本体とReactを更新します。
npm outdated
を叩いて、出てきたパッケージをひたすら更新していきます。
私の環境ではPostCSSまわりで怒られたので、PostCSSも最新のものを明示的にインストールしておくことにします。
このブログの場合はこれだけで移行はほとんど完了し、あとはgatsby-source-contentful
由来のエラーが多少出ている程度です。
またこのブログではカバー画像などの表示にgatsby-image
を使っていたのですが、新しいgatsby-plugin-image
が出ていたのでそちらにも移行しました。
まずはプラグインをインストールして
gatsby-config.js
で有効化します。
ここからはソースにもよりますが、たとえばContentfulならこんなGraphQLクエリーを書いていたところが
こんな感じになります。
コンポーネント内での呼び出しはこんな感じ。公式のドキュメントを見てもらったほうが早いような気もします。これまでのgatsby-image
の良さはそのままに、よりシンプルに使えるようになった印象です。
追記 2021/3/11
gatsby-source-contentful がアップデートされて、contentful関係のエラーも出なくなりました。これで完全に移行完了といってよさそうです。