Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/callumacrae/rev-del
:haircut: Delete old fingerprinted files
https://github.com/callumacrae/rev-del
Last synced: 2 months ago
JSON representation
:haircut: Delete old fingerprinted files
- Host: GitHub
- URL: https://github.com/callumacrae/rev-del
- Owner: callumacrae
- Created: 2015-02-09T16:00:10.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2019-01-23T15:00:05.000Z (almost 6 years ago)
- Last Synced: 2024-10-23T07:07:02.963Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 23.4 KB
- Stars: 35
- Watchers: 4
- Forks: 16
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# rev-del [![Build Status](https://travis-ci.org/callumacrae/rev-del.svg)](https://travis-ci.org/callumacrae/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-del
```## Usage
```js
revDel({
oldManifest: 'rev-manifest.json',
newManifest: { /* a manifest */ },
suppress: true,
deleteMapExtensions: false
}, 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.`deleteMapExtensions`, when set to true, will try and find any ".map" files generated by [gulp-sourcemaps](//github.com/gulp-sourcemaps/gulp-sourcemaps) belonging to changed files in `oldManifest` and delete those too.
### 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.```js
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:
```js
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:```js
// 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()`!You can also add `force: true` as an option. This is passed through to the underlying [del](https://github.com/sindresorhus/del#optionsforce) plugin which accepts it to allow deletion outside the current working directory. This comes in handy when you get a gulp error like 'Cannot delete files/folders outside the current working directory. Can be overriden with the `force` option.'
## License
Released under the MIT license.
[gulp-rev]: https://github.com/sindresorhus/gulp-rev