Apple Sillicon Macでsharpでこける。

M1のmacbook proに変えた。gridsomeのbuildが通らなかったのでメモ。nodeはnodenv環境。 おそらく、sharpを使っているnodeプロジェクトをApple Siliicon Macで動かすとき同じような問題にぶつかると思われる。

gridsomeが内部で使用している画像処理のlibraryのsharpがvipsを使っていて、それがintel用でおかしいぽいので、systemにarm64のものを入れてそっちを使うようにする。

brew install vips

再度実行すると、node-gypがpythonないよと言われる。 そういえばまだpython入れてないなということで。

brew install pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

Ref pyenv: Set up your shell environment for Pyenv

pyenv global 3.11.0

で実行したら以下

ValueError: invalid mode: 'rU' while trying to load binding.gyp

ValueError: invalid mode: 'rU' while trying to load binding.gyp (Python 3.9 compatibility issue) #2219

とのことなので、node-gyp用に pythonのglobalは3.9に変更

これでうまくいくかと思われたが、sharpでgifのloaderがコケてる。どうやら内部で古いsharp使ってるのをやめる。 Gridsome not properly installing on Mac M1 Monterey due to an old version of sharp #1596

package.jsonに追加

"resolutions": {
    "gridsome/sharp": "0.29.3"
  },

これして

yarn install

してok