// web-admin/src/utils/check-app-update.ts import { startAppUpdateChecker } from './app-update' /** 生产环境检查 dist/version.json,发现新 buildId 后强制刷新。 */ export function startAppUpdateCheck(): () => void { return startAppUpdateChecker({ isProd: import.meta.env.PROD, localBuildId: __APP_BUILD_ID__, localVersion: __APP_VERSION__, baseUrl: import.meta.env.BASE_URL, now: () => Date.now(), fetchRemote: async (url) => { const res = await fetch(url, { cache: 'no-store' }) if (!res.ok) throw new Error(String(res.status)) return res.json() }, onReload: () => { location.reload() }, alertUpdate: async (message) => { await ElMessageBox.alert(message, '发现新版本', { confirmButtonText: '立即刷新', showClose: false, closeOnClickModal: false, closeOnPressEscape: false, showCancelButton: false, dangerouslyUseHTMLString: true }) }, setInterval: (fn, ms) => window.setInterval(fn, ms), clearInterval: (id) => window.clearInterval(id), subscribeVisible: (handler) => { const listener = () => { if (document.visibilityState === 'visible') handler() } document.addEventListener('visibilitychange', listener) return () => document.removeEventListener('visibilitychange', listener) } }) }