1.0.5 • Published 9 years ago

daguike-gulp-rev-del v1.0.5

Weekly downloads
8
License
MIT
Repository
github
Last release
9 years ago

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.