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

Jak*_*son 4 javascript gulp

我知道一个常用的方法来使Gulp任务同步到return输出:

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

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

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

  gulp.src('file2.css')
    .pipe(dosomethingElse())
    .pipe(gulp.dest('./css'));
});
Run Code Online (Sandbox Code Playgroud)

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

Ben*_*Ben 12

在gulp任务中使用多个管道的推荐方法是使用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);
});
Run Code Online (Sandbox Code Playgroud)