gulp.watch不按顺序运行任务

时间:2016-06-22 14:18:25

标签: javascript node.js npm gulp gulp-watch

目的

创建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任务。

代码

这是我到目前为止所得到的:

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"]);
});

我在这里做错了什么?

请记住我还是很新的(今天开始学习它!)所以对我的问题的任何解释都会受到欢迎!

2 个答案:

答案 0 :(得分:3)

这是Gulp issue,应该在gulp 4.0

中修复

目前,请尝试run-sequence [https://www.npmjs.com/package/run-sequence]

答案 1 :(得分:1)

以下是一些解决方案 - https://stackoverflow.com/a/22826429/2832584 此外,您似乎在上面的链接中复制了问题