翼度科技»论坛 编程开发 JavaScript 查看内容

vue项目打包自动更新版本号且自动刷新缓存的方法示例

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
在项目根目录创建一个 version.js 文件!
  1. const fs = require('fs');
  2. const path = './package.json';

  3. function getPackageJson() {
  4.     return JSON.parse(fs.readFileSync(path));
  5. }

  6. try {
  7.     let packageJson = getPackageJson();
  8.     let version = packageJson.version;
  9.     // 去除前缀 v
  10.     if (version.startsWith('v')) {
  11.         version = version.slice(1);
  12.     }
  13.     let arr = version.split('.').map(item => {
  14.         let num = Number(item);
  15.         if (isNaN(num)) {
  16.             throw new Error(`Invalid version number part: ${item}`);
  17.         }
  18.         return num;
  19.     });

  20.     if (arr[2] < 9) {
  21.         arr[2] += 1;
  22.     } else if (arr[1] < 9) {
  23.         arr[1] += 1;
  24.         arr[2] = 0;
  25.     } else {
  26.         arr[0] += 1;
  27.         arr[1] = 0;
  28.         arr[2] = 0;
  29.     }

  30.     const newVersion = 'v' + arr.join('.');
  31.     packageJson.version = newVersion;

  32.     fs.writeFileSync(path, JSON.stringify(packageJson, null, 2));
  33.     console.log(`Version updated to ${newVersion}`);
  34.         } catch (error) {
  35.             console.error('Failed to update package.json:', error);
  36.             process.exit(1);
  37.         }
复制代码
在项目package.json配置基础版本号



继续在package.json文件的打包命令里添加执行version代码

可以先到运行serve里面添加执行version代码查看package.json里的版本号是否生效


main.js里面添加清除缓存,刷新代码;简单粗暴
  1. const version = require('../package.json').version
  2. const versionStorage = localStorage.getItem('version')
  3. if (version != versionStorage) {
  4.   localStorage.clear()
  5.   localStorage.setItem('version', version)
  6.   setTimeout(() => {
  7.     window.location.reload(true)
  8.   }, 500)
  9. }
复制代码
总结

到此这篇关于vue项目打包自动更新版本号且自动刷新缓存的文章就介绍到这了,更多相关vue项目打包自动更新版本号内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/javascript/331260rxm.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具