Gulp 任务不按顺序工作

Gulp tasks does not work sequentially

我有 4 个任务来清理构建、构建样式和 javascript 以及创建资产清单。我的默认任务如下所示:

gulp.task('default', function(callback) {
    runSequence('clean', ['styles', 'scripts'], 'version', callback);
});

所以,这很完美,但是 'version' 任务。它不会创建任何东西,也没有任何效果。

gulp.task('version', function() {

    gulp.src(utils.dst('**/*'))

        // create content hashed filenames
        .pipe(rev())
        .pipe(gulp.dest(utils.dst()))

        // create asset manifest
        .pipe(rev.manifest())
        .pipe(gulp.dest(utils.dst()))

});

如果我 运行 执行 gulp clean; gulp styles; gulp scripts; gulp version; 版本任务将创建所需的资产清单。

这是 运行 宁默认任务的输出:

Starting 'default'...
Starting 'clean'...
Finished 'clean' after 6.87 ms
Starting 'styles'...
Finished 'styles' after 7.63 ms
Starting 'scripts'...
Finished 'scripts' after 2.96 ms
Starting 'version'...
Finished 'version' after 2.25 ms
Finished 'default' after 22 ms

有人看到我犯的错误吗?也许当我 运行 版本任务时构建资产还不存在,但这就是为什么我按顺序制作任务 运行 的原因。

有什么解决问题的建议吗?

你必须像这样 return 流:

gulp.task('version', function() {

    return gulp.src(utils.dst('**/*'))

        // create content hashed filenames
        .pipe(rev())
        .pipe(gulp.dest(utils.dst()))

        // create asset manifest
        .pipe(rev.manifest())
        .pipe(gulp.dest(utils.dst()))

});

否则gulp不知道你的任务完成没有!