vue前端现在每次发版本想提示用户刷新页面,主要思路如下
// version.json
{ "version": 1 }
// versionHandle.js
const fs = require('fs')
const path = require('path')
const configFile = path.resolve(__dirname, './asd.json')
const data = fs.readFileSync(configFile, 'UTF-8') // 读文件
const newData = JSON.parse(data)
++newData.version
fs.writeFileSync(configFile, JSON.stringify(newData)) // 写入文件
// package.json
"scripts": {
"dev": // ...
// 每次打包运行脚本
"build": "vite build --config ./vite.config.ts && node ./versionHandle.js",
},
fetch('/version.json').then(response => response.json()).then(res => {
console.log(100, res) // 拿到当前版本号,对比本地储存的版本号,若是不一致则弹框
})
注意: worker 中是访问不到 window 、document、和缓存类型 API 的,所以只有 fetch 的轮询操作放在 worker 中,其他操作放在主线程中执行