Как сделать так, чтобы gulp.dest() писал в ту же директорию, где был обработанный файл?

Рейтинг: 4Ответов: 2Опубликовано: 22.04.2015

Вот пример

var gulp = require('gulp');
var imageminJpegtran = require('imagemin-jpegtran');

gulp.task('optimizeJpg', function () {

return gulp.src('./images/**/**/*.jpg')
    .pipe(imageminJpegtran({ progressive: true })())
    .pipe(gulp.dest('./'));
});

Мне нужно, чтобы все найденные изображения в данной директории были оптимизированны и записаны в нее же. Но не совсем понимаю как это можно было бы сделать.

Ответы

▲ 8Принят

gulp.dest поддерживает использование функции в качестве первого аргумента. Эта функция принимает в качестве аргумента файл как vinyl-объект. Возвращаемая ею строка используется как директория для сохранения.

Попробуйте так :

gulp.dest(function(file){
    return file.base;
})
▲ 2

Укажите в dest ту же директорию, что и в src

return gulp.src('./images/*.jpg')
    .pipe(imageminJpegtran({ progressive: true })())
    .pipe(gulp.dest('./images'));
});