gulp常用插件之rev-del使用
更多gulp常用插件使用请访问:gulp常用插件汇总
rev-del这是一款从模块(如gulp-rev
)生成的修订清单中删除旧的、未使用的指纹文件。
安装
一键安装不多解释
npm install --save-dev rev-del
使用
revDel({
oldManifest: 'rev-manifest.json',
newManifest: { /* 清单 */ },
suppress: true,
deleteMapExtensions: false
}, function (err, filesDeleted) {
// ...
});
清单可以是对象或文件路径。oldManifest
默认为“rev manifest.json
”(这是gulp-rev
的默认输出),而newManifest
没有默认值;它假定您已经将其存储在内存中,因此将其作为对象传递更有效。
如果设置为false
,则在ReVestPrime.JSON
不存在时会引发错误。通常情况下,您不想更改:通常,第一次运行修订脚本时,清单还不存在。
当设置为true
时,deleteMapExtensions
将尝试查找gulp-sourcemaps
生成的属于旧清单中已更改文件的任何“.map
”文件,并将其删除。
rev-del
可以与Gulp
和gulp-rev
一起使用。您需要dest
在选项或base
清单选项中指定-除非您将所有内容都写入根目录。
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'));
});
如果不使用默认值,则可以为它传递旧清单的名称:
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'));
});
请注意,如果清单的名称与给定的路径不同,则仅需要更改清单的名称rev.manifest()
:如果仅更改清单的名称,则rev-del
会很好地处理它:
// 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'));
});
您也可以将指定base
为选项之一。同样,如果您已将其交给,则无需执行此操作rev.manifest()
!
您也可以添加force: true
作为选项。这将传递给底层的del
插件,该插件接受它以允许在当前工作目录之外进行删除。当您遇到诸如“无法删除当前工作目录之外的文件/文件夹”之类的错误时,这很有用。可以使用该force
选项覆盖。”