我目前正在使用类似的东西:
gulp.task('js', gulp.series('js-a', 'js-b', 'js-c'));
[任务js-c
要求先执行js-a
和js-b
并生成2个文件,然后再在js-c
中合并。
但是,无论我是否使用gup-series
,都必须在创建前两个任务的两个文件之前执行函数js-c
。
我如何告诉gulp系列等待那些?
我已经阅读了其他相关问题,但他们倾向于依靠外部脚本来完成此任务。我手动设法通过在setTimeout
上添加js-b
来解决此问题,但似乎是个棘手的解决方案。
是否有适当的方法使用gulp.series完成此操作?
为了使您处于上下文中,任务js-a
看起来像这样:
var gp_concat = require('gulp-concat');
gulp.task('js-a', function(done) {
gulp.src([
'file1.js',
'file2.js'
])
.pipe(gp_concat('tmp.js'))
.pipe(gulp.dest('./'));
done();
});
而且我现在不得不使用超时来解决此问题:
setTimeout(function(){
done();
}, 500);
done()
在这种情况下不应该使用,任务应该返回流(请参阅here)。请尝试以下方法:
var gp_concat = require('gulp-concat');
gulp.task('js-a', function() {
return gulp.src([
'file1.js',
'file2.js'
])
.pipe(gp_concat('tmp.js'))
.pipe(gulp.dest('./'));
});