@sepveneto/update-check
v0.3.1
Published
定时查询版本更新
Maintainers
Readme
@sepveneto/update-check
定时查询版本更新
兼容性
| Edge | Firefox | Chrome | Safari | | --- | --- | --- | --- | | >= 15 | >= 52 | >= 55 | >= 11 |
使用
pnpm i @sepveneto/update-check// vite.config.ts
import Starter from '@sepveneto/update-check/vite'
export default defineConfig({
plugins: [
Starter({ /* options */ }),
],
})Example: playground/
// webpack.config.js
module.exports = {
/* ... */
plugins: [
require('@sepveneto/update-check/webpack')({ /* options */ })
]
}// vue.config.js
module.exports = {
configureWebpack: {
plugins: [
require('@sepveneto/update-check/webpack').default({ /* options */ }),
],
},
}// 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创建定时器,向服务器请求版本并比较,当版本变动时通知主线程
注意
- 仅通知一次
- 一旦版本文件请求失败,会立即销毁线程
