Файлы в моем каталоге:
1-icon.svg
2-icon.svg
3-icon.svg
10-icon.svg
11-icon.svg
12-icon.svg
20-icon.svg
21-icon.svg
22-icon.svg
Gulp src читает их как:
1-icon.svg
10-icon.svg
11-icon.svg
12-icon.svg
2-icon.svg
20-icon.svg
21-icon.svg
22-icon.svg
3-icon.svg
Я пробовал gulp-sort и gulp-order, но ни один из них не дал мне точного порядка файлов, такого как мой каталог.
Любой способ сделать это?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Да, файл заказов на глоток такой же, как и строки. Для управления заказом вы можете использовать плагин gulp-sort. Вот пример, я сделал
const gulp = require('gulp'),
debug = require('gulp-debug'),
sort = require('gulp-sort'),
path = require('path');
gulp.task('ordering', function() {
return gulp.src('./test/*')
.pipe(debug())
.pipe(sort(customComparator))
.pipe(debug())
.pipe(gulp.dest('./dist'));
});
function customComparator(f1, f2) {
const f1Name = path.basename(f1.path);
const f2Name = path.basename(f2.path);
return Number(f1Name.split('-')[0]) > Number(f2Name.split('-')[0]) ? 1 : -1;
}
Взгляните на функцию customComparator, которая берет первую часть имени файла и на ее основе создает заказ.
Плагин gulp-debug используется только для просмотра порядка файлов в консоли. Итак, результат выглядит следующим образом. Вы можете посмотреть список файлов до и после заказа
$ npx gulp ordering
[18:54:27] Using gulpfile ~/own_projects/untitled/gulpfile.js
[18:54:27] Starting 'ordering'...
[18:54:27] gulp-debug: test/1-icon.svg
[18:54:27] gulp-debug: test/10-icon.svg
[18:54:27] gulp-debug: test/11-icon.svg
[18:54:27] gulp-debug: test/12-icon.svg
[18:54:27] gulp-debug: test/2-icon.svg
[18:54:27] gulp-debug: test/20-icon.svg
[18:54:27] gulp-debug: test/21-icon.svg
[18:54:27] gulp-debug: test/22-icon.svg
[18:54:27] gulp-debug: test/3-icon.svg
[18:54:27] gulp-debug: 9 items
[18:54:27] gulp-debug: test/1-icon.svg
[18:54:27] gulp-debug: test/2-icon.svg
[18:54:27] gulp-debug: test/3-icon.svg
[18:54:27] gulp-debug: test/10-icon.svg
[18:54:27] gulp-debug: test/11-icon.svg
[18:54:27] gulp-debug: test/12-icon.svg
[18:54:27] gulp-debug: test/20-icon.svg
[18:54:27] gulp-debug: test/21-icon.svg
[18:54:27] gulp-debug: test/22-icon.svg
[18:54:27] gulp-debug: 9 items
[18:54:28] Finished 'ordering' after 72 ms