Gulp任务没有串联运行

我正在关注官方文档,但是我的大量任务没有连续运行。

gulp.task("mytask", ["foo", "bar", "baz"]); gulp.task("foo", function (callback) { gulp .src("...") .pipe(changed("...")) .pipe(gulp.dest(function (file) { // ...stuff return "..."; })) .on("end", function() { // ...stuff callback(); }); }); gulp.task("bar", function (callback) { //... }); gulp.task("baz", function (callback) { //... }); 

但是我的输出如下所示:

 Starting 'mytask'... Starting 'foo'... Starting 'bar'... // <-- foo is not done yet! Finished 'foo' Finished 'bar' Starting 'baz'... Finished 'baz' Finished 'mytask' 

我如何让他们按顺序运行?

如果你想让它们串行运行,你现在必须使用任务依赖系统,例如:

 gulp.task("mytask", ["foo", "bar", "baz"]); gulp.task("foo", function (callback) { //... callback(...); }); gulp.task("bar", ['foo'], function (callback) { //... callback(...); }); gulp.task("baz", ['bar'], function (callback) { //... callback(...); }); 

它笨重。 我想这将在未来的版本中解决。

根据情况,您可以返回承诺或事件stream,而不是传入和调用callback。

我想我应该提一下, run-sequence模块是一个现在的选项。 但是上面说明的任务依赖系统是目前由吞吐本身提供的机制。 看到这个评论 re:run-sequence和gulp任务sorting的未来。