主題
自分のホームページが作りたくてGetsbyというReactベースの静的サイトジェネレーター(というよりReactを強化してくれるやつ)をいろいろセットアップしていたら、
npmでgatsby-plugin-manifestをinstallする際sharpのinstall時に
> sharp@0.29.2 install /data/data/com.termux/files/home/source/twosquirrels.pages.dev/node_modules/sharp
> (node install/libvips && node install/dll-copy && prebuild-install) || (node install/can-compile && node-gyp rebuild && node install/dll-copy)
# 中略 (WARN系)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! sharp@0.29.2 install: `(node install/libvips && node install/dll-copy && prebuild-install) || (node install/can-compile && node-gyp rebuild && node install/dll-copy)`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the sharp@0.29.2 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
# 後略 (NPMのエラー通知)
このようなエラーが出てインストールできずに困っていました。
その時はTermuxというAndroidでLinuxのようにコマンドが使えるというとても便利なアプリを使っていたのですが、調べてみるとTermuxでなくても同じような症状が出てる人はいるようなのでそれぞれのプラットフォームでの解決方法について記します。
ただ、普通Termux以外だと自動で後述のlibvipsを入れるようになってるっぽいのでTermux以外は特殊な事例だと思います。 知らんけど
解決方法
事前にlibvipsという画像処理ライブラリをインストールしとく必要があるそうです。
よくエラー見たらinstall/libvips
って書いてあるので一応自力でもわかりそうですが()
Windowsの場合
libvipsのGitHubからvips-dev-{アーキテクチャ}-web-{バージョン}.zip
をダウンロードしてちゃんとした場所に解凍し、
なかにあるbin
フォルダのパスを通せばOKです。
2021年現在でのWin10でのパスの通し方は
-
設定
を開く - 検索BOXに
環境変数
と入力 -
システムの詳細設定の表示
を選択 - 下にある
環境変数(N)…
を選択 - 管理者権限を持っていて全ユーザーにパスを通したい場合は下の方の
Path
を、自分だけの場合は上のPath
を選択
(全ユーザーにパスを通したい場合はvipsを全ユーザーがアクセスできる場所に置いときましょう) - それぞれの
編集
を選択 -
新規
から通したいパスを追加 -
上へ(U)
,下へ(O)
でいい感じに上の方に持っていきます
(同じ名前の実行ファイルがあった場合上にある方が優先されます) -
OK
を選択
です。
Linuxの場合
DebianベースのLinux(=aptが使えるやつ)なら
#apt update && apt upgrade -y # 必要に応じて
apt install libvips-dev -y
でvipsが入るはずです。
aptが使えない場合は僕にはわかりません。自力で調べてください(おい
MacOSの場合
homebrewを入れとけば
brew install vips
でvipsが入るはずです。
Termuxの場合
Termuxの場合は
#pkg update && pkg upgrade -y # 必要に応じて
pkg i libvips -y
でvipsが入ります。
さいごに
vips -v
でvipsのバージョンが出てれば成功です。
その状態でもう一度npmパッケージを入れればちゃんと成功するはずです。
npmのオプション --ignore-scripts
でスクリプトを無視してvips入れなくてもパッケージを入れるとかは出来るらしいですが、結局使うにはvips必要だと思うのでそれについては解説しません。
この記事があなたのお役に立てたら幸いです。
ありがとうございました。
Termux、登下校時に電車でプログラミングが出来てチョー便利!!