gulp常用插件之gulp-rev-outdated使用
更多gulp常用插件使用请访问:gulp常用插件汇总
gulp-rev-outdated这是一款旧的静态资产修订文件过滤器。
我们可以使用gulp rev来缓存一些资产。源文件的每次修改都会导致新的修改资产创建。如果使用单独的 http://static.exsample.com/
域来分发静态资产,我们会遇到大量累积的已修改资产文件的问题。如果我们有几个不同的前端(例如[www-1.exsample.com,www-2.exsample.cpm。。。www-12.exsample com])使用不同的软件版本,我们无法删除static.exsample.com上的所有修订资产文件。我们需要保存最近修改过的资产数量。gulp rev过时的过滤器修改的资产,并排除最近要删除的文件的参数化数量。
更多使用文档请点击访问gulp-rev-outdated工具官网。
安装
一键安装不多解释
npm install --save-dev gulp-rev-outdated
使用
接受一个参数[keepQuantity]-最近保存的文件数。默认值==2。
var gulp = require('gulp');
var gutil = require('gulp-util');
var rimraf = require('rimraf');
var revOutdated = require('gulp-rev-outdated');
var path = require('path');
var through = require('through2');
function cleaner() {
return through.obj(function(file, enc, cb){
rimraf( path.resolve( (file.cwd || process.cwd()), file.path), function (err) {
if (err) {
this.emit('error', new gutil.PluginError('Cleanup old files', err));
}
this.push(file);
cb();
}.bind(this));
});
}
gulp.task('clean', function() {
gulp.src( ['dist/js/vendors*.js'], {read: false})
.pipe( revOutdated(1) ) // 保留1个最新的资产文件
.pipe( cleaner() );
gulp.src( ['dist/js/bundle*.js'], {read: false})
.pipe( revOutdated(3) ) // 保留3个最近的资产
.pipe( cleaner() );
gulp.src( ['dist/css/*.css'], {read: false})
.pipe( revOutdated() ) // 保留2个最近的资产(默认值)
.pipe( cleaner() );
return;
});
也可以一次传递所有资产文件:
[...]
gulp.task('clean', function() {
gulp.src( ['dist/**/*.*'], {read: false})
.pipe( revOutdated(1) ) // 为每个文件名前缀保留1个最新的资产文件。
.pipe( cleaner() );
return;
});
gulp.src选项read false阻止gulp读取文件的内容并使此任务快得多。如果在同一流中清洗后需要文件及其内容,请不要将read选项设置为false。