一.场景需求
用户在使用我们的web项目的时候,由于有时候会有生产环境的更新,如果用户在更新前就加载了网页,更新之后用户没有刷新的话偶尔会导致页面报错,这种往往我们提示用户刷新一下就好了,不属于业务或者代码层面的错误。近期由于多次出现这种情况,故老大叫我解决一下。
二.解决思路
做版本号管理,每次调用接口的时候做一次版本校验,如果校验通过则正常访问接口,如果校验不通过就返回特殊状态码前端自动做一次刷新页面以获取最新的页面静态资源。
三.实现
首先,需要每次打包的时候将版本号变动起来,也就是自动去更改版本号,这里通过打包时执行一段js的方式来实现
package.json
{
"name": "project",
"version": "0.0.11",
"lastBuildTime": "2023-02-24 17:28:52",
"scripts": {
"dev": "vite",
"start": "vite",
"build": "vite build --mode=production",
"build:auto": "node ./myBuild.js && vite build --mode=production",
"build:stag": "vite build --mode=staging",
"serve": "vite preview"
}
}
myBuild.js