spa項目新上線後,登錄有效期內用戶,能夠立刻使用新上線資源。html
每次切換路由,都要進行一次打包字符串的判斷,增長代碼及請求前端
一、相應目錄下,新建文件:static/json/build_str.json
二、build/build.js 修改:vue
// 將當前時間戳寫入json文件 let json_obj = {"build_str": new Date().getTime().toString()} fs.writeFile(path.resolve(__dirname, '../static/json/build_str.json'), JSON.stringify(json_obj), function (err) { if (err) { return console.error(err); } console.log("打包字符串寫入文件:static/json/build_str.json,成功!"); realBuild() })
三、src/main.js 修改:webpack
router.beforeEach((to, from, next) => { axios.get('/static/json/build_str.json?v=' + new Date().getTime().toString()) .then(res => { let newBuildStr = res.data.build_str let oldBuildStr = localStorage.getItem('build_str') || '' if (oldBuildStr !== newBuildStr) { console.log('auto refresh') localStorage.setItem('build_str', newBuildStr) location.reload() } }) next() })