8

Gulp newbie here, I downloaded gulp-order for ordering js files when concating *.js because some of my javascript files require jquery to load first.

Below are my gulpfile.js that have order,concat,rename & uglify.

var date = new Date();
var uniq = date.getTime();

gulp.task('admin-scripts', function() {
    return gulp.src(['assets/admin/js/*.js','!assets/admin/js/respond.min.js','!assets/admin/js/html5shiv.js'])
        .pipe(order([
            "assets/admin/js/jquery.min.js",
            'assets/admin/js/*.js'
        ]))
        .pipe(concat(uniq+'admin.js'))
        .pipe(gulp.dest('build/assets/admin/js/'))
        .pipe(rename(uniq+'admin.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('build/assets/admin/js/'));
});

But seems the ordering is not working.

the ordering is base on alphabet a.js > z.js instead of jquery.min.js > a.js > z.js

is there anything I'd code wrongly on the gulpfile.js?

Mavichow
  • 1,213
  • 17
  • 41
  • gulp-order is working exactly as expected.. it order files by their name and does not consider their position in the input source.. it does not have any way of exclude file from ordering or keep these files at top kind of functionality... – harishr Jul 13 '15 at 15:40
  • 1
    to inject jquery etc... you should use gulp-wiredep... and just order files that you develop... wiredep will order files based on dependency graph – harishr Jul 13 '15 at 15:41

2 Answers2

11

adding base option fixed it for me:

.pipe(order([
      'public/js/jquery-1.11.1.min.js',
      'public/js/bootstrap.min.js'
    ], { base: './' }))
eagor
  • 9,150
  • 8
  • 47
  • 50
6

The problem my gulp-order not ordering properly / not working is because I'd put wrong path, the path should be relative to the js folder:

correct order : jquery.min.js

incorrect order : assets/admin/js/jquery.min.js

var date = new Date();
var uniq = date.getTime();

gulp.task('admin-scripts', function() {
    return gulp.src(['assets/admin/js/*.js','!assets/admin/js/respond.min.js','!assets/admin/js/html5shiv.js'])
        .pipe(order([
            "jquery.min.js",
            '*.js'
        ]))
        .pipe(concat(uniq+'admin.js'))
        .pipe(gulp.dest('build/assets/admin/js/'))
        .pipe(rename(uniq+'admin.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('build/assets/admin/js/'));
});
Mavichow
  • 1,213
  • 17
  • 41