• 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。

  • 相关阅读:
    容器之队列的使用
    容器之栈的使用
    rapidxml的使用
    C++判断文件夹是否存在并创建文件夹
    VS2017,不能将const char *转为char *
    CSS_day01_选择器
    HTML_day02_列表
    HTML_day01基本标签
    python_day3
    python_day2
  • 原文地址:https://www.cnblogs.com/jiaoshou/p/12182052.html
Copyright © 2020-2023  润新知