gulp-order
The gulp plugin gulp-order
allows you to reorder a stream of files using the same syntax as of gulp.src
.
Motivation
Assume you want to concatenate the following files in the given order (with gulp-concat
):
vendor/js1.js
vendor/**/*.{coffee,js}
app/coffee1.coffee
app/**/*.{coffee,js}
You'll need two streams:
- A stream that emits the JavaScript files, and
- a stream that emits the compiled CoffeeScript files.
To combine the streams you can pipe into another gulp.src
or use es.merge
(from event-stream
). But you'll notice that in both cases the files are emitted in the same order as they come in - and this can seem very random. With gulp-order
you can reorder the files.
Usage
require("gulp-order")
returns a function that takes an array of patterns (as gulp.src
would take).
var order = ;var coffee = ;var concat = ; gulp // gulp.src passes through input ; // When passing gulp.src stream directly to order, don't include path source/scripts in the order paths. // They should be relative to the /**/*.js. gulp ;
Options
gulp // ...
base
Some plugins might provide a wrong base
on the Vinyl file objects. base
allows you to set a base directory (for example: your application root directory) for all files.
Features
Uses minimatch
for matching.
Tips
- Try to move your ordering out of your
gulp.src(...)
calls intoorder(...)
instead. - You can see the order of the outputted files with
gulp-print
Troubleshooting
If your files aren't being ordered in the manner that you expect, try adding the base
option.
Alternative Approaches
Contributors
License
MIT - Copyright © 2014 Marcel Jackwerth