如何让 gulp.series 等到文件在以前的任务上创建
How to make gulp.series wait until files are created on previous tasks
我目前正在使用这样的东西:
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 系列等待那些?
我读过其他相关问题,但他们倾向于依赖外部脚本来完成此任务。
我通过在 js-b
上添加 setTimeout
手动设法解决此问题,但似乎是一个 hacky 解决方案。
有什么合适的方法可以用 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()
不应在这种情况下使用,任务应 return 流(参见 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('./'));
});
我目前正在使用这样的东西:
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 系列等待那些?
我读过其他相关问题,但他们倾向于依赖外部脚本来完成此任务。
我通过在 js-b
上添加 setTimeout
手动设法解决此问题,但似乎是一个 hacky 解决方案。
有什么合适的方法可以用 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()
不应在这种情况下使用,任务应 return 流(参见 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('./'));
});