我知道让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;。显然这是因为没有返回流。我应该只返回任务中的最后一个流吗?或者返回两个任务的结果更合适?如果是这样,你怎么做?
答案 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);
});