如何同步运行gulp.watch多个任务?

时间:2016-12-11 01:13:05

标签: gulp gulp-watch

例如,下面的代码将运行任务异步,但我希望它们一个接一个地运行。所以" concat"应该先完成,然后运行" autoprefix",然后运行" minify"。



gulp.task("watch", function ()
{
	gulp.watch("*.css", ["concat", "autoprefix", "minify"]);
});




在这个示例中,我想连接我的css文件,然后自动修复属性,然后缩小连接文件。

但是这将同时运行所有任务。

这意味着我的缩小文件(我想在我的html中使用的文件)不是最新的,因为文件在" autoprefix"之前缩小了。任务完成了。

那么如何让它们一个接一个地运行同步?

3 个答案:

答案 0 :(得分:3)

Gulp 4.0(目前为3.9.1)能够按顺序/连续运行任务。

https://github.com/gulpjs/gulp/blob/4.0/docs/API.md#gulpseriestasks

目前,您可以使用run-sequence包。

https://www.npmjs.com/package/run-sequence

答案 1 :(得分:0)

只需安装npm install gulp-sequence --save-save

const gulpSequence = require('gulp-sequence');

gulp.task("watch", function (){
gulp.watch("*.css", gulpSequence("concat", "autoprefix", "minify"));});

命令gulp watch

注意:您必须包括其他类似的口水。

答案 2 :(得分:0)

自从Gulp 4发行以来,它就被本机支持,没有任何依赖关系。我看到了指向文档的链接,但没有看到非常简单的语法:

gulp.task("watch", function ()
{
    gulp.watch("*.css", gulp.series( concat, autoprefix, minify ) );
});