Sharp module のせいで npm start(Gatsby development) 動かなくなった
  1. 銀ねこアトリエ
  2. 海外ノマドブログ
  3. ウェブ制作
  4. Gatsby
  5. Sharp module のせいで np…

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

ローカルの Gatsby のブログの node module を一部更新したら動かなくなりました。

Something went wrong installing the “sharp” module

ビルドはできるけど npm start(Gatsby development) のコマンドでコケる。

この記事を書いた人

神守 由理子/フロントエンドエンジニア

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

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

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

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

なので npm start 時に返ってくる、以下で理論的にはうまくいくと思ったのですがどうもうまくいかない。

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

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

  1. Apple Silicon: Something went wrong installing the “sharp” module #3214
  2. Cannot run gatsby develop on Mac M1

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

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

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

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

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

コマンド
brew reinstall vips
brew info vips

GCC は要求主導型の水平スレッド画像処理ライブラリらしいです。このバージョンが古いとよくないみたい。 とりあえず言われるがままに 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 のバージョンで不具合がおこったっぽいです。

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

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

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

  1. Previous
  2. Next