Обработка нескольких файлов в плагине 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');