我目前正在使用这样的东西:
gulp.task('js', gulp.series('js-a', 'js-b', 'js-c'));
Run Code Online (Sandbox Code Playgroud)
该任务js-c需要js-a首先js-b执行并生成 2 个文件,然后我将其合并到js-c.
但是,无论我是否使用gup-series,该函数js-c都会在创建前两个任务的两个文件之前执行。
我怎样才能告诉 gulp 系列等待那些?
我读过其他相关问题,但他们倾向于依赖外部脚本来完成此任务。setTimeout我通过添加on手动设法解决了这个问题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();
});
Run Code Online (Sandbox Code Playgroud)
我现在被迫使用超时来解决这个问题:
setTimeout(function(){
done();
}, 500);
Run Code Online (Sandbox Code Playgroud)
done()在这种情况下不应使用,任务应返回流(请参阅此处)。请尝试这个:
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('./'));
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1460 次 |
| 最近记录: |