Search code examples
javascriptregexnode.jsgulpglob

Regex inside path parameter of Gulp.src()


How does one exclude minimised files from a gulp.src (glob?) file path via regex or wildcards?

Or maybe even simpler, how does one move minimised files only to their min/{javascript|css} folders?

I have tried the following:

var dir = "./src/",
    lib_dir = "./lib/";

gulp.task("movelib", function(){

    gulp.src(lib_dir + "libraries\/.*\.min\.js")
        .pipe(plumber({errorHandler: function(e){console.log(e); this.emit('end');}}))
        .pipe(gulp.dest("./dist/assets/min/js"));

    gulp.src(lib_dir + "libraries\/.*(?!\.min)\.js")
        .pipe(plumber({errorHandler: function(e){console.log(e); this.emit('end');}}))
        .pipe(gulp.dest("./dist/assets/js"));

    gulp.src(lib_dir + "libraries\/.*\.min\.css")
        .pipe(plumber({errorHandler: function(e){console.log(e); this.emit('end');}}))
        .pipe(gulp.dest("./dist/assets/min/css"));

    gulp.src(lib_dir + "libraries\/.*(?!\.min)\.css")
        .pipe(plumber({errorHandler: function(e){console.log(e); this.emit('end');}}))
        .pipe(gulp.dest("./dist/assets/css"));

    return;

});

However it does not work.


Solution

  • To exclude min.js file, how about that ?

    gulp.src(lib_dir + "libraries/!(.min.js|.min.css)")

    For your second question, did you try without escaping slashes and dots ?

    gulp.src(lib_dir + "libraries/*.min.js")

    cf: https://github.com/isaacs/node-glob