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

How to run gulp.watch multiple tasks synchronized?

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

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

在此示例中,我想连接我的 css 文件,然后是自动前缀属性,然后缩小连接的文件。

但这会运行所有任务同时进行。

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

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

Gulp 4.0(目前为 3.9.1)能够在 sequence/series.

中执行 运行 任务

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

现在,您可以使用 run-sequence 包。

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

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

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

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

命令gulp watch

注意:您必须包括其他 gulp。

自从 Gulp 4 发布以来,它在没有任何依赖项的情况下得到了原生支持。我在文档中看到 link 但不是非常简单的语法:

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