Skip to content

PWA 功能包(@vup/pwa

@vup/pwa 是 VUP 的共享 PWA 接入层能力包。

目标是让应用模板在不重复配置 vite-plugin-pwa 的前提下,快速启用一致的 PWA 能力。

提供能力

  • 封装好的 Vite PWA 插件接入
  • 可复用的 PWA 预设与 Manifest 辅助
  • Service Worker 注册与更新流程运行时助手

能力边界

  • 用于增强现有应用模板(不替代应用框架)
  • 默认以静态资源缓存策略为主
  • 运行时 API 保持轻量,便于业务按需扩展

典型接入方式

1. 在 Vite 配置中接入

ts
import vue from '@vitejs/plugin-vue';
import { defineConfig } from 'vite';
import { createVupPwaPlugin } from '@vup/pwa';

export default defineConfig({
  plugins: [
    vue(),
    createVupPwaPlugin({
      appName: 'My App',
      shortName: 'MyApp',
      description: 'App with PWA capability',
    }),
  ],
});

2. 在运行时注册

ts
import { registerVupPwa } from '@vup/pwa/runtime';

await registerVupPwa({
  onOfflineReady() {
    console.info('[pwa] offline ready');
  },
  onNeedRefresh() {
    console.info('[pwa] new version available');
  },
});

3. 触发更新

ts
import { activateWaitingVupPwa, updateVupPwa } from '@vup/pwa/runtime';

const registration = await registerVupPwa();
await updateVupPwa(registration);
await activateWaitingVupPwa(registration);
window.location.reload();

相关阅读