0

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

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

有人看到我犯的错误吗?当我运行版本任务时,也许构建资产还没有,但这就是我让任务按顺序运行的原因。

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

4

1 回答 1

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

于 2015-11-06T14:52:58.663 回答