Есть такие таски
gulp.task('imgs', function() {
return gulp.src('src/blocks/**/*.{jpg,jpeg,png,gif,svg}')
.pipe(flatten())
.pipe(gulp.dest('public/imgs'));
});
gulp.task('default', ['imgs'], function() {
gulp.watch('src/blocks/**/*.{jpg,jpeg,png,gif,svg}', ['imgs']);
});
Запускаем gulp. Создаётся папка public с папкой imgs, в которой все изображения из папок src/blocks/**.
Если добавить изображение например в папку blocks, то сработает watch и перекинет это изображение в public/imgs, а если удалить это же изображение, то также сработает watch, но изображение из public/imgs не удалится.
Есть вариант использовать del и удалять всю папку public/imgs и потом заново собирать все старые изображения и вместе с ними цеплять новые и перекидывать в public/imgs и при удалении изображения будет тоже самое происходить, но удалённого изображения уже не будет, т.к. gulp соберёт все изображения заново.
Этот способ, мягко говорят, так себе.. Если мало изображений, то ещё ладно, а вот если много, то это уже будет требовать какого-то времени.
Нужен плагин, который когда gulp заметит изменения и пройдётся с помощью src по всем папкам blocks - gulp.src('src/blocks/**/*.{jpg,jpeg,png,gif,svg}'), сравнивал все файлы которые нашёл с файлами, которые лежат в папке public/imgs и удалял, либо добавлял конкретный файл, а не все.
Кто-нибудь знает подобный плагин? Необязательно, чтобы он работал как я описал.. Главное чтобы он удалял или добавлял конкретный файл.