半年ぶりにGatsbyJS
を使ってブログをローカルで確認しようとしたところ、gatsby develop
を実行したところで大量のエラーが発生してしまいました。
対策として、libvips
のインストールとGatsbyJS
およびスターターキットで採用しているパッケージのアップデートを行うことで、エラーなくgatsby develop
を実行し、ブラウザからlocalhost:8000
にアクセスできるようになりました。
対策に至るまでの過程で苦労したので、手順を残しておきます。
対策手順
-
sharp
モジュールのために必要なlibvips
をbrew install vips
でインストール - (エラーが出て止まってしまったら
brew doctor
で対策コマンドを確認して実行し、再度brew install vips
) -
npm outdated
でアップデートが必要なバージョンを確認しpackage.json
の各パッケージのバージョンを書き換える -
npm update
でアップデートする - (必要に応じて
npm uninstall gatsby-cli -g
とnpm install gatsby-cli -g
でgatsby-cli
を最新版にアップデートしてから再度npm update
を実行する)
当初は大量のエラーが出てくるので面食らいましたが、結局はlibvips
のインストールとpackage.json
の書き換えによるGatsbyJS
および各パッケージのアップデートを行うことで正常に動作できるようになりました。
ちなみにnpm outdated
を実行すると以下のようにバージョンを表示してくれます。
$ npm outdated
Package Current Wanted Latest Location
gatsby-plugin-manifest MISSING 2.2.29 2.2.29 gatsby-starter-blog
gatsby-image 2.0.40 2.2.33 2.2.33 gatsby-starter-blog
gatsby-plugin-feed 2.1.1 2.3.21 2.3.21 gatsby-starter-blog
gatsby-plugin-google-analytics 2.0.18 2.1.28 2.1.28 gatsby-starter-blog
gatsby-plugin-offline 2.0.25 2.2.10 3.0.22 gatsby-starter-blog
gatsby-plugin-react-helmet 3.0.12 3.1.15 3.1.15 gatsby-starter-blog
gatsby-plugin-sharp 2.0.35 2.3.2 2.3.2 gatsby-starter-blog
gatsby-plugin-typography 2.2.13 2.3.17 2.3.17 gatsby-starter-blog
gatsby-remark-copy-linked-files 2.0.12 2.1.30 2.1.30 gatsby-starter-blog
gatsby-remark-images 2.0.6 2.0.6 3.1.32 gatsby-starter-blog
gatsby-remark-prismjs 3.2.8 3.3.23 3.3.23 gatsby-starter-blog
gatsby-remark-responsive-iframe 2.1.1 2.2.27 2.2.27 gatsby-starter-blog
gatsby-remark-smartypants 2.0.9 2.1.16 2.1.16 gatsby-starter-blog
gatsby-source-filesystem 2.0.32 2.1.38 2.1.38 gatsby-starter-blog
gatsby-transformer-remark 2.3.12 2.6.37 2.6.37 gatsby-starter-blog
gatsby-transformer-sharp 2.1.18 2.3.5 2.3.5 gatsby-starter-blog
prettier 1.17.0 1.19.1 1.19.1 gatsby-starter-blog
prismjs 1.16.0 1.17.1 1.17.1 gatsby-starter-blog
react 16.8.6 16.12.0 16.12.0 gatsby-starter-blog
react-dom 16.8.6 16.12.0 16.12.0 gatsby-starter-blog
react-helmet 5.2.0 5.2.1 5.2.1 gatsby-starter-blog
typeface-montserrat 0.0.54 0.0.54 0.0.75 gatsby-starter-blog
原因について
libvips
がインストールされていなかったこと(もしくはバージョンが古かったこと)と、sharp
モジュールが要求するバージョンとGatsbyJS
および各パッケージのバージョンの不一致によるビルドエラーが原因だったようです。
libvips
のインストールのあとは、上記のGatsbyJS
公式を見て、そのまま実行するだけでした。
所感
環境構築関連の対策は振り返ればあっけない内容ですが、対策を行っている間は暗中模索の状態で不安や苛立ちが募ってしまいます。些細なことではありますが、こういった対策記事を積み重ねていこうと思います。