一个Gulp任务中有多个同步流?

时间:2014-12-30 20:02:05

标签: javascript gulp

我知道让Gulp任务同步的一种常用方法是return输出:

gulp.task('mytask', function(){
  return gulp.src('myfile.css')
    .pipe(dosomething())
    .pipe(gulp.dest('./css'));
});

但如果单个任务中出现多个流,您会怎么做?

gulp.task('anothertask', function(){
  gulp.src('file1.css')
    .pipe(dosomething())
    .pipe(gulp.dest('./css'));

  gulp.src('file2.css')
    .pipe(dosomethingElse())
    .pipe(gulp.dest('./css'));
});

如何使此任务同步?目前,Gulp报告任务立即结束,流同时运行,并在任务结束后完成#34;。显然这是因为没有返回流。我应该只返回任务中的最后一个流吗?或者返回两个任务的结果更合适?如果是这样,你怎么做?

1 个答案:

答案 0 :(得分:11)

在gulp任务中使用多个管道的recommended way是使用merge-stream

var merge = require('merge-stream');

gulp.task('anothertask', function(){
  var stream1 = gulp.src('file1.css')
    .pipe(dosomething())
    .pipe(gulp.dest('./css'));

  var stream2 = gulp.src('file2.css')
    .pipe(dosomethingElse())
    .pipe(gulp.dest('./css'));

  return merge(stream1, stream2);
});