Как скопировать изображения, переименовав их с префиксом?

У меня есть следующий массив в Gulp:

var imageFiles = {
    'bootstrap-fileinput': 'bower/bootstrap-fileinput/dist/img/*', 
    'some-other-thing':    'bower/some-other-thing/dist/img/*'
};

Я могу быть реструктурирован при необходимости, при условии, что есть префикс и путь для этого префикса.

Как заставить gulp скопировать мои изображения в одну папку, которую я хочу, но префикс каждого префикса из массива? Средства:

bower / bootstrap-fileinput / dist / img / arrow.jpg => /images/bootstrap-fileinput_arrow.jpg

беседка / что-то другое / dist / img / arrow.jpg => /images/some-other-thing_arrow.jpg

27.08.14: Правильно ли я понимаю, что описанная мною задача не может быть решена с помощью одной трубы? В решении, предоставленном @Doodlebot, каждый файл передается независимо и последовательно, как я вижу.

1 ответ

Я смог сделать это с помощью плагина gulp-rename:

var gulp = require('gulp');
var rename = require('gulp-rename');

gulp.task('default', function() {
    var imageFiles = {
        'bootstrap-fileinput': 'bower/bootstrap-fileinput/dist/img/*',
        'some-other-thing': 'bower/some-other-thing/dist/img/*'
    }

    Object.keys(imageFiles).forEach(function(key) {
        gulp.src(imageFiles[key])
        .pipe(rename({
            prefix: key
        }))
        .pipe(gulp.dest('images/'));
    });
});
Другие вопросы по тегам