vite-plugin-vue-updater
v1.0.0
Published
Vue 3 + Vite auto-update solution with Element Plus integration
Maintainers
Readme
✨ 特性
- ⚡️ 零配置:开箱即用,自动生成版本标识。
- 🔄 智能轮询:基于
visibilityState的高性能轮询机制,支持时间戳防缓存。 - 🛡️ 交互闭环:内置“强提醒(Modal) -> 拒绝 -> 弱提醒(Notification)”的最佳实践策略。
- 🎨 UI 集成:深度集成 Element Plus,支持文案与行为自定义。
- 🔧 TS 支持:完全使用 TypeScript 编写,提供完整的类型推断。
📦 安装
# pnpm
pnpm add vite-plugin-vue-updater
# npm
npm install vite-plugin-vue-updater
# yarn
yarn add vite-plugin-vue-updater
⚠️ 注意:本项目依赖 element-plus、vue 和 axios,请确保你的项目中已安装它们。
🚀 快速开始
- 配置 Vite 插件 在 vite.config.ts 中引入插件,用于构建时生成 version.json。
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { versionUpdatePlugin } from 'vite-plugin-vue-updater'
export default defineConfig({
plugins: [
vue(),
// 在构建时自动生成 dist/version.json
versionUpdatePlugin()
]
})- 在 App.vue 中启用 在你的根组件中引入 Hook,即可开启自动检测。
<script setup lang="ts">
import { onMounted, onUnmounted } from 'vue'
import { useVersionCheck } from 'vite-plugin-vue-updater'
const isProd = import.meta.env.PROD
let updater: any
onMounted(() => {
if (isProd) {
updater = useVersionCheck({
// 轮询间隔(毫秒),默认 60000
timer: 5 * 60 * 1000,
// version.json 的地址,注意处理 base 路径
jsonUrl: `${import.meta.env.BASE_URL}version.json`,
// 自定义 UI 文案
ui: {
title: '系统升级',
description: '检测到新版本,请刷新页面以加载最新功能。',
confirmText: '立即刷新',
cancelText: '稍后再说'
}
})
}
})
onUnmounted(() => {
updater?.destroy()
})
</script>📚 详细文档 请访问 官方文档 查看完整的配置项和高级用法。
📄 License MIT.
