|
# [gulp](https://github.com/wearefractal/gulp)-sort |
|
> Sort files in stream by path or any custom sort comparator |
|
|
|
[](https://travis-ci.org/pgilad/gulp-sort) |
|
|
|
## Install |
|
|
|
`$ npm install gulp-sort --save-dev` |
|
|
|
## Usage |
|
|
|
```js |
|
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](#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>)` |
|
|
|
- `files` being the vinyl file objects that were passed in |
|
- `comparator` is 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](http://giladpeleg.com) |
|
|