gulp-sort
Sort files in stream by path or any custom sort comparator
Install
$ npm install gulp-sort --save-dev
Usage
var sort = require('gulp-sort');
// default sort
gulp.src('./src/js/**/*.js')
.pipe(sort())
.pipe(gulp.dest('./build/js'));
// pass in a custom comparator function
gulp.src('./src/js/**/*.js')
.pipe(sort(customComparator))
.pipe(gulp.dest('./build/js'));
// sort descending
gulp.src('./src/js/**/*.js')
.pipe(sort({
asc: false
}))
.pipe(gulp.dest('./build/js'));
// sort with a custom comparator
gulp.src('./src/js/**/*.js')
.pipe(sort({
comparator: function(file1, file2) {
if (file1.path.indexOf('build') > -1) {
return 1;
}
if (file2.path.indexOf('build') > -1) {
return -1;
}
return 0;
}
}))
.pipe(gulp.dest('./build/js'));
// sort with a custom sort function
var stable = require('stable');
gulp.src('./src/js/**/*.js')
.pipe(sort({
customSortFn: function(files, comparator) {
return stable(files, comparator);
}
}))
.pipe(gulp.dest('./build/js'));
Options
gulp-sort takes in an optional comparator function, or dictionary with following params:
asc
Sort ascending. Defaults to true. Specify false to sort descending.
comparator
Comparator function to use. comparator(file1, file2). Defaults to localeCompare of file paths.
customSortFn
Use customSortFn in order to control the sorting yourself (useful for stable sorts).
customSortFn signature is as follows:
customSortFn(<files>, <comparator>)
filesbeing the vinyl file objects that were passed incomparatoris the default comparator used, or a custom one that was passed as param
This function is expected to return back the sorted list of files.
License
MIT ©Gilad Peleg