gulp-orderThe gulp plugin
gulp-orderallows you to reorder a stream of files using the same syntax as of
MotivationAssume you want to concatenate the following files in the given order (with
You'll need two streams:
- a stream that emits the compiled CoffeeScript files.
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-orderyou can reorder the files.
require("gulp-order")returns a function that takes an array of patterns (as
var order = require("gulp-order"); var coffee = require("gulp-coffee"); var concat = require("gulp-concat"); gulp .src("**/*.coffee") .pipe(coffee()) .pipe(gulp.src("**/*.js")) // gulp.src passes through input .pipe(order([ "vendor/js1.js", "vendor/**/*.js", "app/coffee1.js", "app/**/*.js" ])) .pipe(concat("all.js")) .pipe(gulp.dest("dist")); // 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 .src("source/scripts/**/*.js") .pipe(order([ "vendor/js1.js", "vendor/**/*.js", "app/coffee1.js", "app/**/*.js" ])) .pipe(concat("all.js")) .pipe(gulp.dest("dist"));
gulp .src("**/*.coffee") // ... .pipe(order([...], options))
Some plugins might provide a wrong
baseon the Vinyl file objects.
baseallows you to set a base directory (for example: your application root directory) for all files.
- Try to move your ordering out of your
- You can see the order of the outputted files with
TroubleshootingIf your files aren't being ordered in the manner that you expect, try adding the