Sharp module のせいで npm start(Gatsby development) 動かなくなった

Sharp module のせいで npm start(Gatsby development) 動かなくなった

Gatsby

ローカルのこのGatsbyのブログの環境を作り直したら、動かなくなりました。

Something went wrong installing the “sharp” module

この記事を書いた人

かみーゆ/フロントエンドエンジニア

資金ゼロからフィリピンで起業した海外ノマドエンジニア。IT業界10年以上でテクニカルディレクター(技術責任者)・エンジニア講師・ブリッジSEを経てLenzTechnologies Inc.を設立し、代表を務める。CMS concreteCMSエバンジェリスト。テックブログ以外も「磨耗しない人生」や「海外ノマド」のライフスタイルについて発信。好きなものは肉とハイボール。

  • Machine: Mac Book Pro
  • Chip: Apple M1
  • OS: Sonoma

色々調べていたら、画像処理モジュールの sharp をバージョンアップしたせいでエラーが発生したらしい。

エラー解決方法が指示されているから、試すもののうまくいかない。Win器で同様のエラーが出た人はWin器用の sharp をインストールしてうまくいっていた記事は読んだ。

なので理論的には以下でうまくいくと思ったのですが。。。

コマンド
npm install --ignore-scripts=false --foreground-scripts --verbose sharp
npm install --platform=darwin --arch=arm64v8 sharp

色々ググった結果、解決したのでその方法をメモっておきます。

上記2つの記事を参考にとりあえず言われるがままにやってみました。

brew 経由で2つのライブラリをインストール

私と同じ悩みで homebrew がないとは考えにくいのですが、ない方はこちらを参考にインストールしてください。

コマンド
brew install gcc
  • GCC(GNU Compiler Collection)

C言語やC++などをコンパイルする環境を提供するそう。いらなさそうな気はしたけどとりあえずインストール。

コマンド
brew reinstall vips
brew info vips

要求主導型の水平スレッド画像処理ライブラリらしいです。このバージョンが古いとよくないみたい。 とりあえず言われるがままにreinstallで再インストール。で、何が入ったかを念の為brew infoで確認。

コマンド
rm -fr node_modules
npm i

node_modulesを削除して、再インストール。ここまでやれば大丈夫っぽいけど、その続きのスレッドを読むとまた動かなくなったとのこと。

もう一個の記事の Sharp 制作に関わっているアカウントの回答者が以下コマンドについて言及していたので、やってみた。

コマンド
npm install --verbose --foreground-scripts sharp

多分、最初にnpm startで指示があった以下とオプションが一個違うだけでほぼ一緒。

コマンド
npm install --ignore-scripts=false --foreground-scripts --verbose sharp

ちゃんと動いた。良かった。

コマンド
npm start

まとめ・英語のリファレンスが一番解決する

昨日まで動いていたので、node module バージョンアップによるマシーンのスペックとSharp のバージョンで不具合がおこったっぽいです。

マニアックなことをやっていると、英語のリファレンスが必須になるなぁとつくづく思いました。

この記事がみなさんの一助となれば幸いです。

最後までお読みいただきありがとうございました。