我很难理解如何在单个任务中处理多个gulp源。在这样的任务中:
gulp.task('task1', function (cb) {
gulp.src('src/js/**/*').pipe(gulp.dest('dist'));
gulp.src('src/css/**/*').pipe(gulp.dest('dist'));
...
});
我想处理所有不同的源文件,然后将任务标记为已完成,因此其他任务可能取决于它的完成。
我意识到为每个单独的源使用单独任务的可能性,但这会使一切事情变得更加复杂,并使协调器膨胀,实际上不需要单独执行大量任务。
答案 0 :(得分:32)
如果您对所有文件执行相同操作,则可以将一组globs传递给gulp.src
。例如,
gulp.task('task1', function () {
return gulp.src(['src/js/**/*', 'src/css/**/*']).pipe(gulp.dest('dist'));
});
确保返回流,以便协调器知道该任务何时完成。
如果你对不同的文件集做了不同的事情,你可以在一个任务中合并这样的流:
var es = require('event-stream');
gulp.task('fancy-task', function () {
return es.merge(
gulp.src('*.js').pipe(some-js-plugin()),
gulp.src('*.css').pipe(some-style-plugin))
.pipe(gulp.dest('dist'));
});