Итак, я использую типичный процесс минимизации изображения. У меня есть функции для jpg, png, и у меня есть отдельная функция для преобразования их в webp.
У меня есть следующий gulpfile (здесь только соответствующие части):
function clean(done) {
rimraf(folder.public_img, done);
}
function images() {
return gulp.src([folder.preimages+'/**/*.{gif,png,jpg,svg}'])
.pipe(cache(imagemin([
imageminPngquant({
speed: 1,
quality: [0.95, 1]
}),
imageminZopfli({
more: true
}),
imageminMozjpeg({
quality: 65
}),
])))
.pipe(gulp.dest(folder.public_img));
}
gulp.task('webp', () =>
gulp.src([folder.preimages+'/**/*.{gif,png,jpg}'])
.pipe(webp({
quality: 65,
method: 6
}))
.pipe(gulp.dest(folder.public_img))
);
function serve() {
gulp.watch(folder.preimages+"/**/*.{gif,png,jpg,svg}", images);
gulp.watch(folder.preimages+"/**/*.{gif,png,jpg}", webp);
}
gulp.task('clean', clean);
gulp.task('images', images);
gulp.task('serve', gulp.series('clean', 'images', 'webp', serve));
gulp.task('default', gulp.series('clean', 'images', 'webp', serve));
Итак, в основном, когда я запускаю gulp
в первый раз, все процессы работают нормально, и создаются изображения webp. НО, если я добавляю новое изображение, то функция images()
запускается, а вот функция webp()
почему-то не выполняется, она как бы не видит изменений, а у меня она настроена так же, как и изображения.
Я попробовал два варианта:
- Я добавил процесс webp непосредственно в функцию
images()
, но таким образом мои файлы JPG и PNG были напрямую преобразованы в webp, и у меня не было резервных изображений. Я попытался создать функцию webp в том же формате, что и остальные
function webp() { ... }
, но когда я попытался запустить gulp, она показала эту ошибку:Следующие задачи не были выполнены: по умолчанию, вы забыли сигнализировать о завершении асинхронного выполнения?
Итак, я обнаружил, что могу использовать формат выше gulp.task('webp', () =>...
, и это работает, но не учитывает функцию часов. Я думаю, что это может быть связано с функцией присвоения имени в конце файла, но я не очень хорошо знаком с синтаксисом.
Что нужно изменить, чтобы он смотрел корректно?