vue項(xiàng)目打包自動(dòng)更新版本號(hào)且自動(dòng)刷新緩存的方法示例
在項(xiàng)目根目錄創(chuàng)建一個(gè) version.js 文件!
const fs = require('fs'); const path = './package.json'; function getPackageJson() { return JSON.parse(fs.readFileSync(path)); } try { let packageJson = getPackageJson(); let version = packageJson.version; // 去除前綴 v if (version.startsWith('v')) { version = version.slice(1); } let arr = version.split('.').map(item => { let num = Number(item); if (isNaN(num)) { throw new Error(`Invalid version number part: ${item}`); } return num; }); if (arr[2] < 9) { arr[2] += 1; } else if (arr[1] < 9) { arr[1] += 1; arr[2] = 0; } else { arr[0] += 1; arr[1] = 0; arr[2] = 0; } const newVersion = 'v' + arr.join('.'); packageJson.version = newVersion; fs.writeFileSync(path, JSON.stringify(packageJson, null, 2)); console.log(`Version updated to ${newVersion}`); } catch (error) { console.error('Failed to update package.json:', error); process.exit(1); }
在項(xiàng)目package.json配置基礎(chǔ)版本號(hào)
繼續(xù)在package.json文件的打包命令里添加執(zhí)行version代碼
可以先到運(yùn)行serve里面添加執(zhí)行version代碼查看package.json里的版本號(hào)是否生效
main.js里面添加清除緩存,刷新代碼;簡(jiǎn)單粗暴
const version = require('../package.json').version const versionStorage = localStorage.getItem('version') if (version != versionStorage) { localStorage.clear() localStorage.setItem('version', version) setTimeout(() => { window.location.reload(true) }, 500) }
總結(jié)
到此這篇關(guān)于vue項(xiàng)目打包自動(dòng)更新版本號(hào)且自動(dòng)刷新緩存的文章就介紹到這了,更多相關(guān)vue項(xiàng)目打包自動(dòng)更新版本號(hào)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue JS對(duì)URL網(wǎng)址進(jìn)行編碼解碼,轉(zhuǎn)換為對(duì)象方式
這篇文章主要介紹了Vue JS對(duì)URL網(wǎng)址進(jìn)行編碼解碼,轉(zhuǎn)換為對(duì)象方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03Vue組件之極簡(jiǎn)的地址選擇器的實(shí)現(xiàn)
這篇文章主要介紹了Vue組件之極簡(jiǎn)的地址選擇器的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05Vue+Echarts實(shí)現(xiàn)基本K線圖的繪制
這篇文章主要為大家詳細(xì)介紹了如何利用Vue和Echarts實(shí)現(xiàn)基本K線圖的繪制,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-03-03