daguike-gulp-rev-del

1.0.5 • Public • Published

rev-del Build Status

Delete old, unused fingerprinted files from a revision manifest generated by a module such as gulp-rev.

Install

$ npm install --save-dev rev-del

Usage

revDel({
    oldManifest: 'rev-manifest.json',
    newManifest: { /* a manifest */ },
    suppress: true
}, function (err, filesDeleted) {
    // ...
});

The manifests can be either objects or paths to files. oldManifest defaults to "rev-manifest.json" (which is the default output for gulp-rev), and newManifest has no default; it's assumed that you've got it in memory, so it's more efficient to pass it in as an object.

suppress, when set to false, will throw an error when rev-manifest.json doesn't exist. You don't normally want to change: usually, the first time you run your revisioning script, the manifest doesn't exist yet.

With Gulp

rev-del works great with Gulp and gulp-rev. You need to specify either dest in the options, or base in the manifest options—unless you're writing everything to the root directory.

var gulp = require('gulp');
var rev = require('gulp-rev');
var revDel = require('rev-del');
 
gulp.task('default', function () {
    return gulp.src('src/*.css')
        .pipe(rev())
        .pipe(gulp.dest('dist'))
        .pipe(rev.manifest())
        .pipe(revDel({ dest: 'dist' }))           // <--
        .pipe(gulp.dest('dist');
});

You can pass it the name of the old manifest if you're not using the default:

var gulp = require('gulp');
var rev = require('gulp-rev');
var revDel = require('rev-del');
 
gulp.task('default', function () {
    return gulp.src('src/*.css')
        .pipe(rev())
        .pipe(gulp.dest('dist'))
        .pipe(rev.manifest('my-manifest.json'))
        .pipe(revDel('some-other-manifest.json'))        // <--
        .pipe(gulp.dest('dist');
});

Call it before you call gulp.dest.

Note that you only need to change the name of manifest if it is different to the path given to rev.manifest(): if you just change the name of the manifest, rev-del will handle it fine:

// This works
var gulp = require('gulp');
var rev = require('gulp-rev');
var revDel = require('rev-del');
 
gulp.task('default', function () {
    return gulp.src('src/*.css')
        .pipe(rev())
        .pipe(gulp.dest('dist'))
        .pipe(rev.manifest('my-manifest.json'))
        .pipe(revDel({ dest: 'dist' }))                          // <--
        .pipe(gulp.dest('dist');
});

You can also specify the base as one of the options. Again, you don't need to do this if you've given it to rev.manifest()!

License

Released under the MIT license.

Package Sidebar

Install

npm i daguike-gulp-rev-del

Weekly Downloads

1

Version

1.0.5

License

MIT

Last publish

Collaborators

  • dauigke