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
按字母顺序获取文件。
插件确实按照接收文件的顺序输出文件,因此文件的顺序甚至不受他们控制。
他们不对文件进行排序实际上很好,插件应该只做它应该做的事情,不要添加任何额外的东西。
我有以下任务:
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
按字母顺序获取文件。
插件确实按照接收文件的顺序输出文件,因此文件的顺序甚至不受他们控制。
他们不对文件进行排序实际上很好,插件应该只做它应该做的事情,不要添加任何额外的东西。