我有一个gulp任务数组:
var tasks = ['task1','task2','task3'];
如果我开始执行以下gulp任务,它将在我的任务数组中运行所有任务,但同时运行。
gulp.start('mytasks', tasks, function(){});
有没有办法异步地从tasks数组运行我的任务?
答案 0 :(得分:1)
Gulp是基于承诺的,默认是异步的。 引自官方Gulp documentation:
如果任务fn执行以下操作之一,则可以使任务异步:
- 返回流
- 回复承诺
- 接受回电
看看这个模仿上述行为的例子。
var gulp = require('gulp'),
wait = require('gulp-wait');
var tasks = ["task1","task2","task3"]
gulp.task('mytasks', function() {
return gulp.src("/dist")
.pipe(wait(5))
.pipe(gulp.dest('DESTINATIONPATH'));
});
gulp.task('task1', function() {
return gulp.src("/dist")
.pipe(wait(100))
.pipe(gulp.dest('DESTINATIONPATH'));
});
gulp.task('task2', function() {
return gulp.src("/dist")
.pipe(wait(200))
.pipe(gulp.dest('DESTINATIONPATH'));
});
gulp.task('task3', function() {
return gulp.src("/dist")
.pipe(wait(50))
.pipe(gulp.dest('DESTINATIONPATH'));
});
gulp.task('default', function() {
gulp.start('mytasks', tasks, function(){});
});