更多gulp常用插件使用请访问:gulp常用插件汇总


gulp-rev这是一款为静态文件随机添加一串hash值, 解决cdn缓存问题, a.css --> a-d2f3f35d3.css。根据静态资源内容,生成md5签名,打包出来的文件名会加上md5签名,同时生成一个json用来保存文件名路径对应关系。

rev.manifest.json : 生成源文件和添加hash后文件的映射表

gulp-rev插件只能添加后缀, 不能讲html里的路径替换, 如果想要替换路径, 就需要gulp-rev-collector

更多使用文档请点击访问gulp-rev工具官网

安装

一键安装不多解释

 npm install --save-dev gulp-rev

使用

const gulp = require('gulp');
const rev = require('gulp-rev'); exports.default = () => (
gulp.src('src/*.css')
.pipe(rev())
.pipe(gulp.dest('dist'))
);

API

  • rev() : 给静态文件添加hash后缀
  • rev.manifest(path, options) : 生成文件映射
    • path(对照表文件存放路径):

      类型 : string

      默认值: rev-manifest.json

      对照表文件存放路径。

    • options(选项) :

      类型 : object

      • base

        类型 : string

        默认值: process.cwd()

        覆盖base清单文件的。

      • cwd

        类型:string

        默认值:process.cwd()

        覆盖清单文件的当前工作目录。

      • merge (合并)

        类型:boolean

        默认值:false

        合并现有清单文件。

      • transformer (变压器)

        类型:object

        默认值:JSON

        具有parsestringify方法的对象。这可用于提供自定义转换器,而不是JSON清单文件的默认转换器。

原始路径

原始文件路径存储在 插件源码的 file.revOrigPath。对于重写资产引用之类的事情,这可能会派上用场。

资产哈希

每个修订文件的哈希存储在 插件源码的 file.revHash。您可以将其用于自定义文件重命名或构建不同的清单格式。

资产清单

const gulp = require('gulp');
const rev = require('gulp-rev'); exports.default = () => (
// By default, Gulp would pick `assets/css` as the base,
// so we need to set it explicitly:
gulp.src(['assets/css/*.css', 'assets/js/*.js'], {base: 'assets'})
.pipe(gulp.dest('build/assets')) // 复制原资产build目录
.pipe(rev())
.pipe(gulp.dest('build/assets')) // 写rev的资产build目录
.pipe(rev.manifest())
.pipe(gulp.dest('build/assets')) // 写入清单以build目录
);

将原始路径映射到修订路径的资产清单将写入build/assets/rev-manifest.json

{
"css/unicorn.css": "css/unicorn-d41d8cd98f.css",
"js/unicorn.js": "js/unicorn-273c2c123f.js"
}

默认情况下,rev-manifest.json将被整体替换。要与现有清单合并,merge: true请将和输出目的地(如base)传递至rev.manifest()

const gulp = require('gulp');
const rev = require('gulp-rev'); exports.default = () => (
// By default, Gulp would pick `assets/css` as the base,
// so we need to set it explicitly:
gulp.src(['assets/css/*.css', 'assets/js/*.js'], {base: 'assets'})
.pipe(gulp.dest('build/assets'))
.pipe(rev())
.pipe(gulp.dest('build/assets'))
.pipe(rev.manifest({
base: 'build/assets',
merge: true // 与现有清单合并(如果存在)
}))
.pipe(gulp.dest('build/assets'))
);

您可以选择调用rev.manifest('manifest.json')以为其指定其他路径或文件名。

gulp常用插件之gulp-rev使用的更多相关文章

  1. 精通gulp常用插件

    本文主要展示的是gulp常用插件的使用方法和用途,通过对插件的熟练运用达到精通gulp.不定期更新.可以到github上面下载DEMO. github地址:lin-xin/gulp-plugins 匹 ...

  2. gulp常用插件之gulp-rev-format使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-format这是一款提供静态资产的哈希格式选项(前缀,后缀,最后扩展名). 更多使用文档请点击访问gulp-rev-format ...

  3. gulp常用插件之rev-del使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 rev-del这是一款从模块(如gulp-rev)生成的修订清单中删除旧的.未使用的指纹文件. 更多使用文档请点击访问rev-del工具官网. 安 ...

  4. gulp常用插件之gulp-rev-delete-origina使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-delete-origina这是一款删除由gulp-rev或 gulp-rev-all重写的原始文件 . 更多使用文档请点击访问 ...

  5. gulp常用插件之gulp-rev-outdated使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-outdated这是一款旧的静态资产修订文件过滤器. 我们可以使用gulp rev来缓存一些资产.源文件的每次修改都会导致新的修 ...

  6. gulp常用插件之gulp-rev-css-url使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-css-url这是一款用于在gulp-rev之后覆盖js.css文件中的URL进行替换. 更多使用文档请点击访问gulp-rev ...

  7. gulp常用插件之gulp-rev-rewrite使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-rewrite这是一款重写对由gulp-rev修订的资产的引用. 更多使用文档请点击访问gulp-rev-rewrite工具官网 ...

  8. gulp常用插件之gulp-rev-collector使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-collector这是一款根据gulp-rev生成的manifest.json文件中的映射, 去替换文件名称, 也可以替换路径. ...

  9. node和gulp实现前端工程自动化(附:gulp常用插件)

    /** * 1. LESS编译 压缩 合并 * 2. JS合并 压缩 混淆 * 3. img复制 * 4. html压缩 */ // 在gulpfile中先载入gulp包,因为这个包提供了一些APIv ...

随机推荐

  1. JUC中的锁

    ★.不同角度的锁的理解: #1.公平锁.非公平锁 公平锁:eg: ReentrantLock 关键词:先来先服务. 加锁前检查是否有排队等锁的线程,若有,当前线程参与排队,先排的线程优先获取锁.相对没 ...

  2. Go语言实现:【剑指offer】字符流中第一个不重复的字符

    该题目来源于牛客网<剑指offer>专题. 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是 ...

  3. 17-SSM中通过pagehelper分页的实现

    SSM中通过pagehelper分页的实现 1. 在SSM框架的基础上实现,导包 <!-- 分页 --> <dependency> <groupId>com.git ...

  4. 各类JWT库(java)的使用与评价

    [搬运工] 出处:http://andaily.com/blog/?p=956 在 https://jwt.io/ 网站中收录有各类语言的JWT库实现(有关JWT详细介绍请访问 https://jwt ...

  5. MongoDB入门(介绍、安装)

    一.什么是MongoDB? MongoDB is a document database with the scalability and flexibility that you want with ...

  6. RFC笔记,IPv6 Node Requirements

    Request for Comments: 6434,IPv6 Node Requirements 路由器节点必须能够生成链路本地地址 5.9.2. IPv6 Stateless Address Au ...

  7. docker-compose 常用命令整理:

    docker-compose -f my.yaml version 查看docker-compose版本信息 docker-compose -f lnmp.yaml images 列出镜像 docke ...

  8. 06_TypeScript泛型

    1.泛型的定义 泛型就是解决 类,接口 方法的复用性,以及对不特定数据的支持(类型校验). 2.泛型函数 //T 表示泛型,具体什么类型是调用这个方法的时候决定的, //T可以用其他大写字母表示,传入 ...

  9. chrome报错:您目前无法访问 因为此网站使用了 HSTS

    chrome报错:您目前无法访问 因为此网站使用了 HSTS 其然: 现象 :访问github仓库报错'您目前无法访问XXXX 因为此网站使用了 HSTS' 解决方法:清理HSTS的设定,重新获取.c ...

  10. asp.net MVC项目开发之统计图echarts柱状图(一)

    echarts统计图doc网址:http://echarts.baidu.com/echarts2/index.html 使用echarts,需要引用在js中,如果你已经下载echarts的js包,可 ...