Обработка нескольких файлов в плагине Gulp

Я пытаюсь написать плагин глотка. Вы используете это так:

var gulp = require('gulp'),
    codo = require('gulp-codo');

gulp.task('doc', function () {
    return gulp.src('*.coffee')
    .pipe(codo()) // codo(name, title, readme, dir)
});

Я хочу, чтобы *.coffee предоставил codo() все файлы coffeescript в текущем каталоге.

В плагине вход обрабатывается так:

 return through.obj(function(file, enc, cb) {

     invokeCodo(file.path, name, title, readme, dir, function(err, data) {
         if(err) {
            cb(new gutil.PluginError('gulp-codo', err, {fileName: file.path}));
            return;
         }
         file.contents = new Buffer(data);
         cb(null, file);
    });
});

Я заметил, что file.path - это только первое совпадение, а не все совпадения. Как я могу зациклить это для каждого матча. Я попробовал поиск здесь, но нашел только вопросы, связанные с генерацией множественных выходов в плагине Gulp.

Благодарю.

1 ответ

Решение

gulp-foreach может помочь тебе Ваша задача должна выглядеть примерно так:

gulp.task('doc', function () {
    return gulp.src('*.coffee')
        .pipe(foreach(function(stream, file){
            return stream
                .pipe(codo()) // codo(name, title, readme, dir)
                .pipe(concat(file.name));
        });
});

Также не забудьте включить gulp-foreach вот так вверху вашего файла:

var foreach = require('gulp-foreach');
Другие вопросы по тегам