gulp常用插件之gulp-rev-rewrite使用
更多gulp常用插件使用请访问:gulp常用插件汇总
gulp-rev-rewrite这是一款重写对由gulp-rev修订的资产的引用。
更多使用文档请点击访问gulp-rev-rewrite工具官网。
安装
一键安装不多解释
npm install --save-dev gulp-rev-rewrite
使用
最常见的使用模式包括两个步骤:
- 修改资产并创建资产清单。
- 从清单中收集修订的路径并重写对它们的引用
const { src, dest, series } = require('gulp');
const rev = require('gulp-rev');
const revRewrite = require('gulp-rev-rewrite');
// Step 1
function revision() {
return src('dist/assets/**/*.{css,js}')
.pipe(rev())
.pipe(dest('dist/assets'))
.pipe(rev.manifest())
.pipe(dest('dist/assets'));
}
// Step 2
function rewrite() {
const manifest = src('dist/assets/rev-manifest.json');
return src('dist/**/*.html')
.pipe(revRewrite({ manifest }))
.pipe(dest('dist'));
}
exports.default = series(revision, rewrite);
或者,您可以将结合使用这两个步骤 gulp-filter 。
const { src, dest } = require('gulp');
const filter = require('gulp-filter');
const rev = require('gulp-rev');
const revRewrite = require('gulp-rev-rewrite');
function revision() {
const assetFilter = filter(['**', '!**/*.html'], { restore: true });
return src('dist/**')
.pipe(assetFilter)
.pipe(rev()) // 重命名除html文件之外的所有文件
.pipe(assetFilter.restore)
.pipe(revRewrite())
.pipe(dest('dist'));
}
exports.default = revision;
API
revRewrite([options])
options
类型:Objectmanifest
类型:(Stream例如gulp.src())
读取写入的JSON清单rev。允许替换在当前任务之前修订的文件名。prefix
类型:String
为每个替换项添加前缀。
ModifyUnreved,modifyReved
类型:Function
在使用前,请先修改未恢复/已恢复文件的名称。该函数将未删除/已删除的文件名作为第一个参数,将当前文件的Vinyl对象作为可选的第二个参数。
例如,如果您的清单中有:
{"js/app.js.map": "js/app-98adc164.js.map"}
如果您只想删除文件的js/路径.map(因为它们是源映射,并且对它们的引用是相对的,而不是绝对的),则可以执行以下操作:
const { src, dest } = require('gulp');
function replaceJsIfMap(filename) {
if (filename.includes('.map')) {
return filename.replace('js/', '');
}
return filename;
}
function rewrite() {
return src('dist/**/*.js')
.pipe(revRewrite({
manifest: src('rev-manifest.json'),
modifyUnreved: replaceJsIfMap,
modifyReved: replaceJsIfMap
}))
.pipe(dest('dist'));
}
exports.default = rewrite;
gulp常用插件之gulp-rev-rewrite使用的更多相关文章
- 精通gulp常用插件
本文主要展示的是gulp常用插件的使用方法和用途,通过对插件的熟练运用达到精通gulp.不定期更新.可以到github上面下载DEMO. github地址:lin-xin/gulp-plugins 匹 ...
- gulp常用插件之gulp-rev-format使用
更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-format这是一款提供静态资产的哈希格式选项(前缀,后缀,最后扩展名). 更多使用文档请点击访问gulp-rev-format ...
- gulp常用插件之rev-del使用
更多gulp常用插件使用请访问:gulp常用插件汇总 rev-del这是一款从模块(如gulp-rev)生成的修订清单中删除旧的.未使用的指纹文件. 更多使用文档请点击访问rev-del工具官网. 安 ...
- gulp常用插件之gulp-rev-delete-origina使用
更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-delete-origina这是一款删除由gulp-rev或 gulp-rev-all重写的原始文件 . 更多使用文档请点击访问 ...
- gulp常用插件之gulp-rev-outdated使用
更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-outdated这是一款旧的静态资产修订文件过滤器. 我们可以使用gulp rev来缓存一些资产.源文件的每次修改都会导致新的修 ...
- gulp常用插件之gulp-rev-css-url使用
更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-css-url这是一款用于在gulp-rev之后覆盖js.css文件中的URL进行替换. 更多使用文档请点击访问gulp-rev ...
- gulp常用插件之gulp-rev-collector使用
更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-collector这是一款根据gulp-rev生成的manifest.json文件中的映射, 去替换文件名称, 也可以替换路径. ...
- gulp常用插件之gulp-rev使用
更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev这是一款为静态文件随机添加一串hash值, 解决cdn缓存问题, a.css --> a-d2f3f35d3.css.根据静 ...
- node和gulp实现前端工程自动化(附:gulp常用插件)
/** * 1. LESS编译 压缩 合并 * 2. JS合并 压缩 混淆 * 3. img复制 * 4. html压缩 */ // 在gulpfile中先载入gulp包,因为这个包提供了一些APIv ...
随机推荐
- oracle的网络连接
NAMES.DIRECTORY_PATH常用的值有tnsnames,hostname,onames和ezconnect和 ldap,cds,nis不常用的值,默认值是(tnsnames,onames, ...
- 简化 Spring Boot 项目部署,Flyway 搞起来
虽然我之前录了一个微人事(https://github.com/lenve/vhr)部署视频(新版微人事部署教程来啦),但是由于这次升级涉及到了 Redis 和 RabbitMQ,所以在本地跑微人事还 ...
- Nginx安装(yum源)
CentOS7 $ vi /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/c ...
- Spark SQL 之自定义删除外部表
前言 Spark SQL 在删除外部表时,本不能删除外部表的数据的.本篇文章主要介绍如何修改Spark SQL 源码实现在删除外部表的时候,可以带额外选项来删除外部表的数据. 本文的环境是我一直使用的 ...
- 如何重写object虚方法
在 C# 中 Object 是所有类的基类,所有的结构和类都直接或间接的派生自它.前面这段话可以说所有的 C# 开发人员都知道,但是我相信其中有一部分程序员并不清楚甚至不知道我们常用的 ToStrin ...
- 检测APK是否存在Janus漏洞步骤
Janus说明 Android APP仅使用V1签名,可能存在Janus漏洞(CVE-2017-13156),Janus漏洞(CVE-2017-13156)允许攻击者在不改变原签名的情况下任意修改 ...
- 吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_autowire
<?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www. ...
- #《Essential C++》读书笔记# 第二章 面向过程的编程风格
基础知识 函数必须先被声明,然后才能被调用(被使用).函数的声明让编译器得以检查后续出现的使用方式是否正确--是否有足够的参数.参数类型是否正确,等等.函数声明不必提供函数体,但必须指明返回类型.函数 ...
- IBM x3250m5安装redhat 6.5 加载raid卡驱动
原文地址:http://www.i5i6.net/post/118.html 1. 下载对应raid卡驱动 for redhat6.5 x64(如本次x3250 m5 c100阵列卡驱动 lsi_dd ...
- iMacros 入门教程-内置变量介绍(5)
iMacros 的变量类型 1.!VAR0 到 !VAR9,这是系统定义的内置变量,专门给你赋值用 就是程序设定了这几个名字给你赋值 2.内建变量 就是 imacros 设定的特别作用的变量,例如 ! ...