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 执行结果如下:

 

posted @ 2024-02-05 11:41  我就丶是逗比  阅读(498)  评论(0)    收藏  举报