定时查询版本更新
Edge |
Firefox |
Chrome |
Safari |
---|---|---|---|
>= 15 | >= 52 | >= 55 | >= 11 |
pnpm i @sepveneto/update-check
Vite
// vite.config.ts
import Starter from '@sepveneto/update-check/vite'
export default defineConfig({
plugins: [
Starter({ /* options */ }),
],
})
Example: playground/
Webpack
// webpack.config.js
module.exports = {
/* ... */
plugins: [
require('@sepveneto/update-check/webpack')({ /* options */ })
]
}
Vue CLI
// vue.config.js
module.exports = {
configureWebpack: {
plugins: [
require('@sepveneto/update-check/webpack').default({ /* options */ }),
],
},
}
esbuild
// esbuild.config.js
import { build } from 'esbuild'
import Starter from '@sepveneto/update-check/esbuild'
build({
plugins: [Starter()],
})
// main.ts/main.js
import { onUpdate } from '@sepveneto/update-check'
onUpdate(() => {
/**
* 询问用户是否需要刷新页面
*/
})
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
timer | number | 60 * 1000 | 检查的间隔,单位毫秒 |
base | string | '' | 版本文件的访问位置 |
cache | no-cache, storage | storage | 文件的缓存策略,默认是强缓存stroag,如果设置为no-cache,则不会携带时间戳 |
once | boolean | false | 是否只在应用打开时检查版本号 |
immediate | boolean | false | 是否在定时器创建时立即执行一次查询 |
关于base
:
一般保持与vite中的base
或是webpack/vue-cli中的publicPath
一致即可,但是当其配置为./
或auto
需要设置为具体的地址
名称 | 参数 | 说明 |
---|---|---|
onUpdate | function | 当版本发生变动时执行 |
check | - | 手动向worker下发版本查询任务,如果有更新会触发onUpdate |
- 项目构建时在公共目录生成版本文件
- 依赖worker创建定时器,向服务器请求版本并比较,当版本变动时通知主线程
- 仅通知一次
- 一旦版本文件请求失败,会立即销毁线程