at backyard

Color my life with the chaos of trouble.

M1 Mac環境でsharpがインストールエラーになるときの暫定的対処メモ

目次

前置き

M1 Macは基本的に便利なツールだが、時としてM1ならではの困るポイントというのもいくつか存在する。

私の場合、それらは大抵プログラミングの最中になるのだが、今回のケースもその一つ。

画像処理系のnpm ライブラリに sharpというものがある。これはM1 Mac環境だとインストールに失敗する時がある。

www.npmjs.com

エラーの原因は環境にもよるかもしれないが、node-gypvips などによるものである。

今回、あるサイト作成作業のなかでfavicon画像を生成したい場面に出くわした。
favicon 作成における処理をプログラムから行う際に役立つパッケージを以前作成していたので、そちらを利用して生成処理を書こうと思ったのだが、このツールは sharp を利用していたため、現在の自身のNode.js環境(v16)だとインストール時にエラーになってしまう。

github.com

だが、今作業しているこのM1マシンでなんとかエラーを回避してこのツールを使いたかったので、それを行った際の作業ログを備忘録として残しておく。

M1 Macでもsharpをインストールする方法(暫定対応)

前置きが長くなったが本題にはいる。といって結論はシンプルで、Node.js のv14系だとsharpはインストールできるので、一度v14系に切り替えてインストールを行ったという形になる。
今回のケースではこの生成処理は、普段遣いのNode.jsのversionとは分けて管理できる状態だったということもあり、この回避方法が使えている。
が、一つのプロジェクトでやる場合にはこの回避方法は辛いかもしれない。

以下、作業ログ。
なお、自身は nvm を用いて複数のNode.jsを使い分けられるようにしている。

# v14系の最新バージョンをインストール
nvm install v14.19.1

#この時点でnode.jsはv14系に切り替わっているので、後は上のツールをインストールしてコードを書く
yarn add simple-favicon-generator

というわけで、すべての人の回避策にはならないが、もしNode.jsのversionを変えられるような状況であれば、v14系で sharp、または sharpに依存したツールを使うというのが時間がかからずに実施できる策となる。