@aurouscia/vite-app-version
v0.2.0
Published
vite应用版本标记与检查工具
Readme
vite-app-version
组成部分
- 一个vite插件,在应用编译时将当前时间戳写入:
- index.html的meta标签里
- public目录的某文件里(作为静态文件被请求)
- 一个异步函数,在你认为合适的时候进行版本检查(对比上述两者的值是否相同)并返回一个布尔值(客户端是否是最新版)
使用方法
npm install @aurouscia/vite-app-version//vite.config.[js/ts]
import { appVersionMark } from '@aurouscia/vite-app-version'
export default defineConfig({
plugins:[
...
appVersionMark()
]
})//xxxx.[vue/js/ts]
//---------------------------------------------
// 注意这里导入的from并不是包名,后面还有个check
//---------------------------------------------
import { appVersionCheck } from '@aurouscia/vite-app-version/check';
//用户进入特定页面等场景
const isNewest = await appVersionCheck()
if(!isNewest){
alert('有新版本,请刷新浏览器更新')
//或者直接location.reload()
}为什么导入路径不一样?
因为mark函数里用到了node的fs模块,而check函数并不用。
如果从同一个入口导入,vite会一股脑解析所有依赖项,并对“浏览器使用fs”(其实并没有)这件事发出警告,看起来很让人不爽。
调试时
若调试时发生“怎么刷新都显示需要更新”的情况,重启vite调试服务器即可。
git
记得将生成的txt文件加入.gitignore里。
自定义文件名称和meta名称
如果不想使用默认的文件名和meta标签名
上述两个函数都可以传入配置参数(切记要保持一致),可这样自定义保存版本信息的文件名和meta标签名。
为了保持一致,可以使用vite的define功能定义这个配置对象。
License
MIT
