Gulp任务不能按顺序工作

时间:2015-11-06 13:30:51

标签: gulp manifest gulp-rev

我有4个任务来清理构建,构建样式和javascripts并创建资产清单。我的默认任务如下所示:

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

所以,这完全可以解决'版本'任务。它没有创造任何东西,也没有效果。

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

有人看到我做错了吗?当我运行版本任务时,可能还没有构建资产,但这就是我按顺序运行任务的原因。

我有什么建议可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

你必须像这样返回流:

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无法知道你的任务是否完成!

相关问题