owned mediaウェブ制作に役立つコンテンツを発信中!

gulp-imageminで「ArgumentError」が発生する時の対処法メモ

最終更新日: Update!!
過去記事「Gulpでいろんなフォーマットの画像を一括で圧縮する」でも紹介していますが、画像圧縮でとても便利なGulpのモジュール「gulp-imagemin」でアップデート後にエラーが発生してタスクが止まってしまう現象が起こりました。今回はその時の対処法について備忘録として残しておきたいと思います。   gulp-imageminをアップデート後、タスクをいつも通り実行すると、下記のエラーが表示されました。
ArgumentError: Expected argument to be of type `array` but received type `string`
  翻訳してみると、どうやら引数を配列型にする必要があるようですね。いろいろ調べてみると下記のような対応をしてくださいとのことです。 【gulpfile.js】※一部省略
// 変更前
gulp.task('imagemin', function () {
 return gulp.src('src/images/*')
 .pipe(imagemin([
  pngquant({ 
   quality: '65-80',
   speed: 1 
  }),
  mozjpeg({ quality: 80 })
 ]))
 .pipe(gulp.dest('dist/assets/img/_min'));
});

// 変更後
gulp.task('imagemin', function () {
 return gulp.src('src/images/*')
 .pipe(imagemin([
  pngquant({ 
   quality: [ 0.65, 0.8 ], // 文字列から配列型に変更
   speed: 1 
 }),
 mozjpeg({ quality: 80 })
 ]))
 .pipe(gulp.dest('dist/assets/img/_min'));
});
  pngquantなどで対象を複数の値で範囲を指定している場合、これまでは文字列で表現していたのですが、アップデート後は配列の形で値を指定する必要があります。公式ページ(https://www.npmjs.com/package/imagemin-pngquant)にも詳しく載っていますね。こういったちょっとした変更は知らないと焦る場合もありますので、ぜひ情報共有しておきたいものですね。
  • はてなブックマーク
  • Pocket
  • Linkedin
  • Feedly

この記事を書いた人

Twitter

sponserd

    keyword search

    recent posts

    • Twitter
    • Github
    contact usscroll to top
      • Facebook
      • Twitter
      • Github
      • Instagram