gulp 中不可预测的文件顺序

Unpredictable file order in 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 无法预测地执行此操作,我如何确保每次的顺序都相同?

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

插件确实按照接收文件的顺序输出文件,因此文件的顺序甚至不受他们控制。

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