Mavichow Mavichow - 6 months ago 80
Javascript Question

gulp-order : not Ordering properly

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?

Answer

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/'));
});
Comments