gulp.watch 没有按顺序 运行 任务

gulp.watch does not run tasks in order

Objective

创建一个 gulp.watch 任务以 运行 其他任务

为什么这不是重复的

很多人建议我看一看How to run Gulp tasks sequentially one after the other。但是,这个问题关注 gulp.task 而我的问题关注 gulp.watch

我正在寻找的解决方案是一种使用gulp.watch来实现我所追求的同步效果的方法。但是,如果这不可能,我将退回到 gulp.task

背景

我有一个小项目,我有一些测试文件以及 gulp gulp-complexity 插件。我希望先 运行 测试文件,然后每次 JavaScript 文件更改时 运行 gulp-complexity 插件。

我试过的

我阅读了文档并看到了以下教程:

他们非常好,但我仍然不明白我怎么能有一个 gulp.watch 任务,运行s 任务同步(按特定顺序)而不是 运行 异步地设置它们。

代码

这是我目前得到的:

var gulp = require("gulp");
var mocha = require("gulp-mocha");
var complexity = require("gulp-complexity");

gulp.task("test", function(){
    gulp
    .src("./test.js")
    .pipe(mocha())
    .on("error", function(){
        this.emit("end");
    });
});


gulp.task("complexity", ["test"], function(){
    gulp.src('*.js').pipe(complexity());
});

gulp.task("watch", function(){
    gulp.watch("./*.js", ["test", "complexity"]);
});

我在这里做错了什么?

请记住,我对 gulp 还是很陌生(今天才开始学习!)所以欢迎对我的问题进行任何解释!

这是一个Gulp issue and should be be fixed in gulp 4.0

现在,尝试 run-sequence [ https://www.npmjs.com/package/run-sequence ]