在gulp打包文件时候 给静态资源 css js html文件内的引用增加时间戳

这是个在一个混合单页面项目及多页面项目的混合打包工具中的一项功能
在webpack打包转译完单页面应用之后 进行gulp打包产出tar包过程中对页面中css js html 内引用的静态资源文件路径替换增加时间戳?v=这么一个过程 希望大家都有所启发

// 时间戳demo
let through = require(‘through2’);
let getDate = moment().format(‘YYYYMMDDHHmmss’);

let ASSET_REG = {
‘CSS’: /([’"])([^\s’"].?)\1/ig, // 修改在css中的探测内容
‘dynamic-loading’: /(

function change(options) {
return through.obj(function (file, enc, cb) {
options = options || {};
if (file.isNull()) {
this.push(file);
return cb();
}
var content = file.contents.toString();
for (var type in ASSET_REG) {
if (type === ‘BACKGROUND’ && !/.(css|scss|less)KaTeX parse error: Got function '\newline' with no arguments as superscript at position 1: \̲n̲e̲w̲l̲i̲n̲e̲/.test(src)) {
return str;
}
// 排除.html 静态资源(根据公司cdn设置规则)
if(/.+.(html)$/g.test(src)) {
return str;
}
// 排除cdn的common目录下的静态资源
if(/t\d.ch[de]i.com.cn/common/.+/g.test(src)) {
return str;
}
src = src.trim(); //去掉空格
//解决已有版本号重复多次加载的问题(处理旧版号)
if(src.indexOf(’?’) > -1) {
src = src.replace(/([?&]v=)([^&]+)/g, ‘$1’ + getDate);
}else if(src.indexOf(’/common/js’) > -1 || src.indexOf(’/common/css’) > -1) {
src = src; // 直接加版本号
} else {
src = src + ‘?v=’ + getDate;
}
return tag + src + tag;
});
}
}
// 鉴于安全性,不再使用 new Buffer(content)
file.contents = Buffer.from(content);
this.push(file);
cb();
});
}

部分代码转译不正确 贴图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值