2015-12-02 2 views
2

Я использую глотка, чтобы изменить размер и переименовать некоторые изображения:глотка переименование создания ненужных каталогов

var gulp = require('gulp'); 
var imageResize = require('gulp-image-resize'); 
var changed = require('gulp-changed'); 
var rename = require('gulp-rename'); 

var resizeImages = function resize(options) { 
    gulp 
    .src('original-images/**') 
    .pipe(changed('./')) 
    .pipe(imageResize({ width: options.width })) 
    .pipe(rename((path) => { path.basename += options.fileSuffix; })) 
    .pipe(gulp.dest('public/assets/img/')); 
}; 


gulp.task('resize-images',() => { 
    const desktopImageResizeOptions = { 
    width: 356, 
    fileSuffix: '-desktop', 
    }; 
    const tabletImageResizeOptions = { 
    width: 291, 
    fileSuffix: '-tablet', 
    }; 
    const phoneImageResizeOptions = { 
    width: 721, 
    fileSuffix: '-phone', 
    }; 
    resizeImages(desktopImageResizeOptions); 
    resizeImages(tabletImageResizeOptions); 
    resizeImages(phoneImageResizeOptions); 
}); 

Это работает - он ставит змененные переименованы изображения в нужное место, с суффиксом добавляется к имени файла.

Однако он также создает каталоги под названием -desktop, -phone и -tablet. Как я могу предотвратить это?

ответ

1

Я решил это, указав окончания файла и, следовательно, не переходя в каталоги. Таким образом, src на линии 8 стал

.src('original-images/**/*.{jpg,png}') 
+1

имел такое же дурацкую проблему, спасибо за размещение своего ответа :) – TheFullResolution

0

Вы также можете иметь дело с более сложными корпусами. Если функция, переданная функции rename, не изменяет путь к файлу, она будет опущена. В следующем примере файл не будет переименован, если он имеет не extname

.pipe(rename(function (path) { 
    if (path.extname !== "") { 
     path.basename += "-" + options.width; 
    }    
})) 
Смежные вопросы