gulp-imagemin を使用して画像を圧縮する gulp タスクがあります。このディレクトリに新しいファイルを追加するとき、このタスクでそれらも圧縮したいと思います。gulp.watch は新しいファイルでトリガーされず、gulp -watch を試す必要があることを読んだので、そのように使用しました。
gulp.task('images', function() {
watch({glob: './source/images/*'}, function (files) {
return files
.pipe(plumber())
.pipe(imagemin({
progressive: true,
interlaced: true
}))
.pipe(gulp.dest('./www'));
});
});
これは、最初の実行では gulp.watch と同じように機能しますが、ディレクトリに新しい画像を追加しても何も起こりません。ただし、既存のファイルを上書きすると、タスクが再度実行されるため、動作が異なります。
gulp-watch のドキュメントでは、これを「バッチ モード」と呼び、ファイルごとにタスクを実行することもできると述べていたので、この方法も試しました。
gulp.task('images', function() {
gulp.src('./source/images/*')
.pipe(watch())
.pipe(plumber())
.pipe(imagemin({
progressive: true,
interlaced: true
}))
.pipe(gulp.dest('./www'));
});
しかし、何も変わりませんでした。画像ディレクトリにファイルを追加してもタスクがトリガーされないのはなぜですか?