vue3+vite项目打包文件加载载入对应版本号
依据前端工程自动化部署核心,我们在每次打包的时候都会存在不同的文件,可能也会存在相同的文件名,每次其中的内容都不一样,但是又不需要依靠用户强制 F5 ,我们就进行了 依赖分包块拆解。
但是每次拆解出来的包可能会出现同名称文件的文件,这种情况下可以加入时间戳,就像这样:
这样打包出来的文件就不会存在重复了。我们在部署的时候这些文件肯定会上 CDN 的,依靠版本号理念我们会在引用文件后加上 xxx?ver=1.0.0 这样的参数
依靠 vite 的配置目前我没想出来怎么办,但是依靠 node 还是可以搞一搞的。具体代码如下:
import fs from 'fs/promises';
import {config} from "dotenv-flow";
const indexPath = '项目地址';
// 获取环境变量
process.env.NODE_ENV = 'prod';
config({
path: indexPath
});
// 定义要读取的文件路径
const filePath = indexPath + '\\dist\\index.html';
const content = await fs.readFile(filePath, 'utf8');
const version = process.env.VITE_APP_VERSION;
const updatedData = content.replace(/(href|src)="(.+?\.css|.+?\.js)"/g, (match, attr, url) => {
return `${attr}="${url}?v=${version}"`;
});
fs.writeFile(filePath, updatedData, 'utf8').then(() => {
console.log('更新成功')
}).catch(err => {
console.log(err)
});
同时需要修改 package.json 构造时候的命令加上:node build-version.js 执行结果如下:
本文来自博客园,作者:我就丶是逗比,转载请注明原文链接:https://www.cnblogs.com/lonewolfyx/articles/18007689