@html-schema/web-update-checker
v0.1.1
Published
Browser-only、framework-agnostic 的 Web 静态资源升级检测包。当前由 `apps/web` 通过 `app.config.json` 注入运行时配置后接入。
Readme
@html-schema/web-update-checker
Browser-only、framework-agnostic 的 Web 静态资源升级检测包。当前由 apps/web 通过 app.config.json 注入运行时配置后接入。
核心规则
- 只接受相同
environment的 manifest;prod/test/dev更新通道互相隔离。 - 优先比较
buildId,缺失时才用appVersion兜底。 - 不依赖 Vue、Element Plus、Pinia 或 Vue Router。
- Browser API 通过 adapter 懒访问,Node 测试导入不会访问
window。 prompt支持按environment/buildId去重和remindAfterMs稍后提醒。force支持按environment/buildId记录 reload guard,避免同一版本无限刷新。
配置
{
policy: "off" | "prompt" | "force",
checkUrl: "./app-update.json",
checkIntervalMs: 60000,
startupDelayMs: 10000,
requestTimeoutMs: 8000,
remindAfterMs: 300000,
forceDelayMs: 3000,
reloadQueryKey: "__web_build"
}主要 API
createWebUpdateChecker(...):创建轮询检测器。createBrowserWebUpdateAdapter(...):浏览器 fetch/timer adapter。normalizeWebUpdateManifest(...)/compareWebUpdateBuild(...):manifest 校验和构建比较。buildWebUpdateReloadUrl(...):生成带 build query 的刷新地址。createWebUpdateDecisionStore(...):prompt/force 去重与刷新保护。isChunkLoadError(...):识别动态 import/chunk 加载失败。
命令
pnpm --filter @html-schema/web-update-checker test
pnpm --filter @html-schema/web-update-checker typecheck
pnpm --filter @html-schema/web-update-checker build