LoginSignup
1
1

More than 5 years have passed since last update.

gulp-imagemin で pngquant ENOENT というエラーの対処法

Posted at

gulp-imagemin と imagemin-pngquant を入れても動かない

gulp環境を作り直したら画像軽量化のタスクでエラーが出てしまいました。

events.js:160
      throw er; // Unhandled 'error' event
      ^
Error: spawn /Users/dada/.nodebrew/node/v6.10.0/lib/node_modules/imagemin-pngquant/node_modules/pngquant-bin/vendor/pngquant ENOENT
    at exports._errnoException (util.js:1022:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
    at onErrorNT (internal/child_process.js:359:16)
    at _combinedTickCallback (internal/process/next_tick.js:74:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)

情報を漁ったらstackoverflowでこんな情報がありました。

「pngquant ENOENT はそのディレクトリにpngquantが無いって意味だよHAHAHA」(意訳)

pngquant のバイナリを探す

node_modules/ の中を探してみると pngquant は存在していて、バイナリファイルもちゃんと入っていました。僕の場合は下記のディレクトリです。

/Users/dada/.nodebrew/node/v6.10.0/lib/node_modules/pngquant/node_modules/pngquant-bin/vendor/pngquant

シンボリックリンクを作って対処

それなら imagemin-pngquant が探そうとしている場所にシンボリック作ってやればいいじゃないかと試してみたら上手くいきました。
ディレクトリ名は各々の環境にあわせて書き換えてください。

$ cd /Users/dada/.nodebrew/node/v6.10.0/lib/node_modules/imagemin-pngquant/node_modules/pngquant-bin/vendor
$ ln -s /Users/dada/.nodebrew/node/v6.10.0/lib/node_modules/pngquant/node_modules/pngquant-bin/vendor/pngquant ./pngquant

これで問題無くコマンドが通るようになりました。

gulp-imagemin の使い方

gulp-imagemin の設定については過去にまとめました。
≫Gulpでpngquantを使ってPNGの減色&軽量化

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1