gulp教程之自动添加版本号

1 创建项目

安装nodejs/全局安装gulp/本地安装gulp/创建package.json和gulpfile.js文件,项目目录如下:

2 自动更改版本号插件简介

gulp-rev 为css文件中引入的图片或字体等添加hash编码
gulp-asset-rev为js/css文件生成hash编码并生成 rev-manifest.json文件名对照映射
gulp-rev-collector 为文件替换版本号

3 本地安装插件

安装gulp-rev

npm install gulp-rev --save-dev

安装gulp-asset-rev

npm install gulp-asset-rev --save-dev

安装gulp-rev-collector

npm install gulp-rev-collector --save-dev

4 配置gulpfile.js

5 执行任务

命令提示符执行:

gulp

执行后压缩后的文件目录如下:

css文件如下

html文件如下

然而,我们的预期效果是希望这样子的

6、更改gulp-rev和gulp-rev-collector

打开node_modules\gulp-rev\index.js
第144行 manifest[originalFile] = revisionedFile;
更新为: manifest[originalFile] = originalFile + ‘?v=‘ + file.revHash;
打开nodemodules\gulp-rev\node_modules\rev-path\index.js
10行 return filename + ‘-‘ + hash + ext;
更新为: return filename + ext;
打开node_modules\gulp-rev-collector\index.js
31行 if ( !_.isString(json[key]) || path.basename(json[key]).replace(new RegExp( opts.revSuffix ), ‘‘ ) !==  path.basename(key) ) {
更新为: if ( !_.isString(json[key]) || path.basename(json[key]).split(‘?‘)[0] !== path.basename(key) )
打开node_modules\gulp-assets-rev\index.js
78行 var verStr = (options.verConnecter || "-") + md5;
更新为:var verStr = (options.verConnecter || "") + md5;
80行 src = src.replace(verStr, ‘‘).replace(/(\.[^\.]+)$/, verStr + "$1");
更新为:src=src+"?v="+verStr;
打开node_modules\gulp-rev-collector\index.js
第107行 regexp: new RegExp( ‘([\/\\\\\‘"])‘ + pattern, ‘g‘ ),
更新为: regexp: new RegExp( ‘([\/\\\\\‘"])‘ + pattern+‘(\\?v=\\w{10})?‘, ‘g‘ ),

修改完成执行gulp,效果如下

7 总结

本文简单的介绍如何压缩静态资源及使用到的对于插件,下一篇介绍使用gulp如何让文件合并。

原文地址:https://www.cnblogs.com/huiguo/p/12694907.html

时间: 2024-08-12 17:39:02

gulp教程之自动添加版本号的相关文章

gulp自动化打包及静态文件自动添加版本号

前端自动化打包发布已是一种常态,尤其在移动端,测试过程中静态资源的缓存是件很头疼的事情,有时候明明处理的bug测试还是存在,其实就是缓存惹的祸,手机不比pc浏览器,清理缓存还是有点麻烦的.所以自动化实现静态资源的版本更新才是正道. 实际开发过程中,我们常用到的功能包括: 1.目标路径的清除: 2.静态资源复制到目标路径: 3.css文件的合并与压缩: 4.js文件的合并与压缩: 5.根据文件的变化添加版本号: 第1.2.3.4几个功能倒是很好解决,今天主要说说gulp实现静态资源自动添加版本号:

为js和css文件自动添加版本号

web应用必然要面对缓存问题,无论前台后台都会涉足缓存.特别是对于前端而言,缓存利用的是否得当直接关系到应用的性能. 通常情况下,我们会倾向于使用缓存,因为缓存一方面可以减少网络开销,一方面可以减轻服务器的压力. 但是有些时候缓存也会带来一些比较诡异的问题,呵呵.关于缓存的文章应该不在少数,不再讨论,本文的重点在于为js和css文件自动添加版本号. 这样做的原因是:首先对于js和css类型的静态文件设置了缓存机制,当文件被更新时,需要强迫浏览器下载修改后的新文件,也就是要更新缓存,而通过为js和

Provisioning Services 7.8 入门系列教程之八 自动添加设备

续Provisioning Services 7.8 入门系列教程之七 批量导入设备 对于批量导入设备,其最大的缺点是在导入前,必须准确记录所有设备的MAC地址.当然,这种方式也有许多方便之处,如可以将不同的设备添加到不同地站点.不同的集合. 下面介绍第三种方式:通过自动添加向导完成设备的添加 使用自动添加向导 自动添加向导可以自动配置各种规则,以便利用自动添加功能将新的目标设备自动添加到 Provisioning Services 数据库中. 可以在场.站点.集合或设备级别启动自动添加向导.

用python给html里的css及js文件链接自动添加版本号

传统的给文件链接添加版本号的方法是使用gulp-rev,这里提出的解决方案是使用python来替代gulp-rev. import os import re import uuid import sys def file_extension(path): return os.path.splitext(path)[1] basePath = sys.argv[1] if len(sys.argv)==1: sys.exit() html_list = [] def find_html(path)

Gulp自动添加版本号

转载自:http://www.cnblogs.com/givebest/ 推荐使用gulp-rev + gulp-rev-collector是比较方便的方法,结果如下: "/css/style.css" => "/dist/css/style-1d87bebe.css" "/js/script1.js" => "/dist/script1-61e0be79.js" "cdn/image.gif"

gulp自动添加版本号过程中的一些要点记录

1.打开node_modules\gulp-rev\index.js 第144行 manifest[originalFile] = revisionedFile; 更新为: manifest[originalFile] = originalFile + '?v=' + file.revHash; 2.打开node_modules\gulp-rev\nodemodules\rev-path\index.js 10行 return filename + '-' + hash + ext; 更新为:

gulp教程之静态资源压缩

1 创建项目 安装nodejs/全局安装gulp/本地安装gulp/创建package.json和gulpfile.js文件,项目目录如下: 2 压缩插件简介 gulp-useref 合并html里面的js/css gulp-concat用于合并文件,把也就是多个文件合并到一个文件中,以节省存储空间 gulp.spritesmith 图片合并成雪碧图 3 本地安装插件 安装gulp-useref npm install gulp-useref --save-dev 安装gulp-concat n

通过gulp为requireJs引入的模块添加版本号

由于项目用到requireJs,并且通过gulp来对项目进行统一的管理,为了防止浏览器对文件进行缓存,所以通过gulp为项目中的文件添加版本号. 1.分别安装gulp-rev.gulp-rev-collerctor npm install --save-dev gulp-rev npm install --save-dev gulp-rev-collector 打包后的效果 "/css/style.css" => "/dist/css/style-1d87bebe.cs

gulp批量添加版本号

要实现的理想效果: "/css/style.css" => "/dist/css/style.css?v=1d87bebe""/js/script1.js" => "/dist/script1.js?v=61e0be79""cdn/image.gif" => "//cdn8.example.dot/img/image.gif?v=35c3af8134" 1.安装Gulp