gulp-rev-outdated

    1.0.1 • Public • Published

    Build Status Dependencies devDependencies NPM version

    gulp-rev-outdated

    NPM

    Old static asset revision files filter.

    Install

    $ npm install --save-dev gulp-rev-outdated

    Usage

    We can use gulp-rev to cache-bust several assets. Every modification of source files caused a new revisioned asset creation. In case of using separate http://static.exsample.com/ domain for distributing static assets we have some problem with a lot of accumulated revisioned asset files. If we have several different frontends (e.q. [www-1.exsample.com, www-2.exsample.cpm, ... www-12.exsample com]) worked with different software releases, We can't remove all revisioned asset files on static.exsample.com. We need to save number of recent revisioned assets. gulp-rev-outdated filter revisioned assets and exclude parametrised quantity of recent files for removing.

    Takes one parameter [ keepQuantity ] - number of saved recent files. Default value == 2.

    var gulp         = require('gulp');
    var gutil           = require('gulp-util');
    var rimraf          = require('rimraf');
    var revOutdated     = require('gulp-rev-outdated');
    var path            = require('path');
    var through         = require('through2');
     
    function cleaner() {
        return through.obj(function(file, enc, cb){
            rimraf( path.resolve( (file.cwd || process.cwd()), file.path), function (err) {
                if (err) {
                    this.emit('error', new gutil.PluginError('Cleanup old files', err));
                }
                this.push(file);
                cb();
            }.bind(this));
        });
    }
     
    gulp.task('clean', function() {
        gulp.src( ['dist/js/vendors*.js'], {read: false})
            .pipe( revOutdated(1) ) // leave 1 latest asset file
            .pipe( cleaner() );
     
        gulp.src( ['dist/js/bundle*.js'], {read: false})
            .pipe( revOutdated(3) ) // leave 3 recent assets
            .pipe( cleaner() );
     
        gulp.src( ['dist/css/*.css'], {read: false})
            .pipe( revOutdated() ) // leave 2 recent assets (default value)
            .pipe( cleaner() );
     
        return;
    });

    It's also possible to pass in all your asset files at once:

    [...]
     
    gulp.task('clean', function() {
        gulp.src( ['dist/**/*.*'], {read: false})
            .pipe( revOutdated(1) ) // leave 1 latest asset file for every file name prefix.
            .pipe( cleaner() );
     
        return;
    });

    gulp.src option read false prevents gulp to read the contents of the file and makes this task a lot faster. If you need the file and it's contents after cleaning in the same stream, do not set the read option to false.

    Works with gulp-rev-outdated

    License

    MIT © Oleksandr Ovcharenko

    Install

    npm i gulp-rev-outdated

    DownloadsWeekly Downloads

    717

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    6.72 kB

    Total Files

    4

    Last publish

    Collaborators

    • avatar