gulp中不可预测的文件顺序

时间:2015-05-26 08:03:28

标签: javascript gulp

我有以下任务:

var inject = require('gulp-inject');
...
gulp.task('index-build', function () {
    return gulp.src(config.index)
        .pipe(
            inject(gulp.src(config.build + '/vendor/**/*.js', { read: false }))
        )
        .pipe(gulp.dest(config.build));
});

大多数情况下,它可以实现:在路径中按字母顺序连接文件,从而产生如下内容:

    ...
    <script src="/vendor/angular/angular.js"></script>
    <script src="/vendor/angular-resource/angular-resource.js"></script>
    ...

但有时,不规律地,它会这样做:

    ...
    <script src="/vendor/angular-resource/angular-resource.js"></script>
    <script src="/vendor/angular/angular.js"></script>
    ...

由于angular-resource.js取决于angular.js,因此打破了应用。

为什么gulp不可预测地做到这一点?我如何确保每次订单都相同?

1 个答案:

答案 0 :(得分:2)

使用gulp-sort按字母顺序获取文件。

插件会按照接收文件的顺序输出文件,因此文件序列甚至无法控制。

它实际上很好,他们不对文件进行排序,插件应该只做它应该做的事情并且不添加额外的东西。