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;
更新为: return filename + ext;

3、打开node_modules\gulp-rev-collector\index.js

31行 if ( path.basename(json[key]).replace(new RegExp( opts.revSuffix ), ‘‘ ) !== path.basename(key) ) {
更新为: if ( path.basename(json[key]).split(‘?‘)[0] !== path.basename(key) ) {

4、gulp替换aspx文件的链接时,发生乱码,解决如下:

打开node_modules\gulp-rev-collector\index.js,全局搜索mutables.forEach(,将其代码修改为:

mutables.forEach(function (file) {
            if (!file.isNull()) {
                var src = file.contents.toString(‘utf8‘);
                changes.forEach(function (r) {
                    src = src.replace(r.regexp, r.replacement);
                });
                //src = "EF BB BF" + src;
                var content = new Buffer(src, "utf8");
                //加一步判断操作,判断是否是带bom的文件
                var bomTag = ["239", "187", "191"];
                if(!(content[0].toString(16).toLowerCase() == "ef" && content[1].toString(16).toLowerCase()=="bb" && content[3].toString(16).toLowerCase()=="bf")){
                    content = Buffer.concat([new Buffer(bomTag), content], content.length + 3);
                }
                file.contents = content;
            }
            this.push(file);
        }, this);
时间: 2024-08-12 17:38:56

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

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自动化打包及静态文件自动添加版本号

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

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

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

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

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

用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)

QTcpSocket使用过程中的一些问题记录

目前,在将原来C的socket通讯改为使用Qt类库QTcpSocket通讯,在修改过程中遇到不少问题,在此将问题一并记录,以备后面使用. 采用的通讯方式:QTimer定时器.QThread多线程和QTcpSocket通讯.QTimer设置定时通讯间隔(10s),QThread运行定时器响应函数,QTcpSocket进行数据发送. 1.问题一:QTcpSocket对象创建和使用要在同一个线程,否则报错. 错误描述:QObject:Cannot create children for a paren

linux安装和配置 mysql、redis 过程中遇到的问题记录(转)

章节目录 mysql redis linux下部署mysql和redis网上的教程很多,这里记录一下我部署.配置的过程中遇到的一些问题和解决办法. mysql ①安装完成后启动的时候报错 Starting MySQL.The server quit without updating PID file 干掉/etc/my.cnf 就好了 原因是: mysql_safe 下指定的  /var/run/mariadb 和 /var/log/mariadb 不存在 也可以选择新建这两个目录 ②安装好之后

完善实体类,由EF自动生成数据库过程中的一些问题

①.配置两表间的关系时WillCascadeOnDelete(false)取消级联删除 public AdminLogConfig() { this.ToTable("T_AdminLogs"); this.Property(a => a.Msg).IsRequired(); this.HasRequired(a => a.AdminUser).WithMany().HasForeignKey(a => a.AdminUserId).WillCascadeOnDele