目标
创建一个 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
插件。
我尝试过的
我阅读了文档并看到了以下教程:
- > https://github.com/gulpjs/gulp/blob/master/docs/API.md
- > https://www.smashingmagazine.com/2014/06/building-with-gulp/
它们非常好,但我仍然不明白如何让 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"]);
});
我在这里做错了什么?
请记住,我对 gulp 还是很陌生(今天开始学习它!),所以欢迎对我的问题进行任何解释!
最佳答案
这是一个 Gulp issue应该在 gulp 4.0 中修复
现在,尝试run-sequence
[ https://www.npmjs.com/package/run-sequence ]
关于javascript - gulp.watch 不按顺序运行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37970787/