Gatsby.js
とnpm update
基本的にnpm update
はメジャーバージョンアップを避けるようになっており
こまめにやってもビルドできなくなる可能性は比較的低い(と思う)
しかしながらGatsby.js
自体がかなり複雑なプログラムなため公式もバグを把握しきれずリリースすることもあるため
時々だがnpm run dev
やnpm run build
できなくなってしまう事がある。
npm update
すると動かなくなるときはまずはGit Hub
に挙がってくるGatsby.js
公式Issues
を見る。
概ねココに自分と同じバグが挙がってきていると思うので対応策を探す。
バグの原因がおおよそ明らかであればGatsby
運営の対応は早いので待っても良い。
GitHub
版)Gatsby
サイトをGitHub
で管理しているのであれば動いていたバージョンへロールバックすれば良い....と思うのだが
そもそもロールバックしてしまうと追加した記事と画像が消えてしまい面倒だ。
部分的にロールバックする方法もあるはずだが...それすら面倒なので私はやってない。
というわけで、サクっともとに戻す方法を紹介する。
node_modules
フォルダを丸ごと削除最新のパッケージはここにインストールされているので一度フォルダごと削除する。
ファイル数が多く削除に時間がかかる。
VSCode
から削除すると一時的にVSCode
がフリーズするが削除が終わると帰ってくるので気長に。
GitHub
のリポジトリからjson
をDL正常にビルドできた過去のバージョンから次の2つのファイルをDLする
package.json
package-lock.json
どこからDLするの?となる場合は
ここから動いていた過去のバージョンを探して
タイトルをクリック
右上に現れるBrowse files
これでファイル一覧が出るので欲しい物をクリックしてソースを表示
そのままコピペしても良いし
Raw
からDLしても良い。
npm update
に失敗したローカルのデータに上の2つのファイルを上書きしてしまう。
npm install
ここでnpm install
してパッケージを全インストール。
念の為gatsby clean
を実行する。これでnpm run build
が走るはず(環境によってはgatsby build
)
これで大体動く。
package.json
に関しては「そんなもん知っとるわ」と言われそうだ。
しかし、次のパターンで実行すると結局ビルドエラーになるケースがあり、時々迷うので私個人としても備忘録とした。
node_modules
を一旦削除しないと上書きinstall
してももとに戻らない(たぶん)package-lock.json
の存在をわすれており、これを元に戻しておらずエラーになるnpm update
でアップデートされたパッケージだけpackage.json
の記述で戻してnpm insitall
しただけではエラーになる新しく追加した記事を削除しないようにもっとサクっともとに戻せる方法があったら教えていただけたらと思う。