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
选项覆盖。”