异步运行多个Gulp任务

时间:2016-01-20 10:55:53

标签: asynchronous gulp taskmanager

我有一个gulp任务数组:

var tasks = ['task1','task2','task3'];

如果我开始执行以下gulp任务,它将在我的任务数组中运行所有任务,但同时运行。

gulp.start('mytasks', tasks, function(){});

有没有办法异步地从tasks数组运行我的任务?

1 个答案:

答案 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(){});
});