Windowsでの`Error: pngquant failed to build, make sure that libpng-dev is installed`への対処(完了)

nodistのnpmのバージョンが上がらない→「Error: pngquant failed to build, make sure that libpng-dev is installed」エラーが表示される(継続)の続きとなります。

Windows10でimagemin-pngquantをインストールしようとすると、タイトルのエラーが発生してコケてしまいます。

Error: pngquant failed to build, make sure that libpng-dev is installed

ただし、Windows環境ならば必ず発生するかと言うと、そうでもない様子(今のところ3台試験してSurface1台だけ上述エラーが発生する)。

これについてどうにかならないかと調べてみると……

Stack Overflowの2つの質問で「npm install --save-dev pngquant --msvs_version=2013を試すと良い」という回答がありました。

このうち、msvs_versionオプションが何者なのかさらに検索。

すると、上述の記事がヒット。どうもwindows-build-toolsに関するもののようです。

windows-build-toolsが何者かと言うと、

  • Node.jsのライブラリの一部ではC++を使用したものがある
  • C++で作られたモジュールをビルドするのにnode-gypが使われる
  • node-gypはモジュールをビルドする際にPythonを使う

ということで、一部ライブラリを使用するために必要なC++やPythonの開発環境をWindowsに構築するためのツール、とのこと。

……そういえば、エラーが出ないPCのうち片方はwindows-build-toolsを入れていましたね(もう片方は記憶が曖昧で定かではない)。

もしかするとこれが原因か?ということで試してみます。

> npm install -g windows-build-tools

#略

---------- Visual Studio Build Tools ----------
Successfully installed Visual Studio Build Tools.
------------------- Python --------------------
Successfully installed Python 2.7

Now configuring the Visual Studio Build Tools and Python...

All done!

+ windows-build-tools@5.2.2
added 145 packages from 99 contributors in 766.995s

windows-build-toolsのインストールが完了しました。

これで問題のpackage.jsonnpm i -Dしてみます。

> npm i -D

#略

> pngquant-bin@5.0.2 postinstall C:\xampp\htdocs\test\_template\kiribi_ususama\node_modules\pngquant-bin
> node lib/install.js

  √ pngquant pre-build test passed successfully

上手く行きました!

ということで、私のケースでは、Error: pngquant failed to build, make sure that libpng-dev is installedが発生したときにPowerShellを起動してnpm install -g windows-build-toolsで解決しました。

参考

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。