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

Posted 黑皮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);

 

以上是关于gulp自动添加版本号过程中的一些要点记录的主要内容,如果未能解决你的问题,请参考以下文章

使用gulp自动化打包合并前端静态资源(CSSJS文件压缩添加版本号)

gulp教程之自动添加版本号

Gulp自动添加版本号

Gulp自动添加版本号

gulp:自动为请求添加版本号以防止浏览器缓存

gulp自动化压缩合并加版本号解决方案