如何在一个任务中执行多个gulp命令

时间:2014-09-07 17:49:55

标签: gulp

我很难理解如何在单个任务中处理多个gulp源。在这样的任务中:

gulp.task('task1', function (cb) {
    gulp.src('src/js/**/*').pipe(gulp.dest('dist'));
    gulp.src('src/css/**/*').pipe(gulp.dest('dist'));
    ...
});

我想处理所有不同的源文件,然后将任务标记为已完成,因此其他任务可能取决于它的完成。

我意识到为每个单独的源使用单独任务的可能性,但这会使一切事情变得更加复杂,并使协调器膨胀,实际上不需要单独执行大量任务。

1 个答案:

答案 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'));
});