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

Gulp 2019.02.22

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

Tags: ,

過去記事「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)にも詳しく載っていますね。こういったちょっとした変更は知らないと焦る場合もありますので、ぜひ情報共有しておきたいものですね。

この記事を書いた人

オガワ シンヤ

合同会社デザインサプライ代表兼CEO / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はチョコレートが欠かせない三十路Webクリエイター。

  • Twitter

コメントフォーム

記事に関するご質問やご意見などありましたら下記のコメントフォームよりお気軽に投稿ください。なおメールアドレスは公開されませんのでご安心ください。

内容に問題なければ、お名前・ハンドルネームとメールアドレスを入力いただき、下記の「コメントを送信」ボタンを押してください。

CAPTCHA


この記事もよく読まれています

Scroll to Top
ご質問・ご相談はありませんか ?