daguike-gulp-rev-del v1.0.5
rev-del 
Delete old, unused fingerprinted files from a revision manifest generated by a module such as gulp-rev.
Install
$ npm install --save-dev rev-delUsage
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.