Kaynağa Gözat

解决打包错误

wilhelm wong 3 ay önce
ebeveyn
işleme
6707504d24
3 değiştirilmiş dosya ile 22 ekleme ve 3 silme
  1. 2 2
      src/components/PWAUpdatePrompt.vue
  2. 19 0
      src/env.d.ts
  3. 1 1
      src/views/Favorite.vue

+ 2 - 2
src/components/PWAUpdatePrompt.vue

@@ -69,14 +69,14 @@ const showUpdatePrompt = ref(false);
 const updating = ref(false);
 const updating = ref(false);
 
 
 const { needRefresh, updateServiceWorker } = useRegisterSW({
 const { needRefresh, updateServiceWorker } = useRegisterSW({
-  onRegistered(r) {
+  onRegistered(r: ServiceWorkerRegistration | undefined) {
     console.log('Service Worker 已注册');
     console.log('Service Worker 已注册');
     // 每小时检查一次更新
     // 每小时检查一次更新
     r && setInterval(() => {
     r && setInterval(() => {
       r.update();
       r.update();
     }, 60 * 60 * 1000);
     }, 60 * 60 * 1000);
   },
   },
-  onRegisterError(error) {
+  onRegisterError(error: any) {
     console.error('Service Worker 注册失败:', error);
     console.error('Service Worker 注册失败:', error);
   },
   },
 });
 });

+ 19 - 0
src/env.d.ts

@@ -1,4 +1,5 @@
 /// <reference types="vite/client" />
 /// <reference types="vite/client" />
+/// <reference types="vite-plugin-pwa/client" />
 
 
 declare module '*.vue' {
 declare module '*.vue' {
   import type { DefineComponent } from 'vue'
   import type { DefineComponent } from 'vue'
@@ -6,6 +7,24 @@ declare module '*.vue' {
   export default component
   export default component
 }
 }
 
 
+declare module 'virtual:pwa-register/vue' {
+  import type { Ref } from 'vue'
+  
+  export interface RegisterSWOptions {
+    immediate?: boolean
+    onNeedRefresh?: () => void
+    onOfflineReady?: () => void
+    onRegistered?: (registration: ServiceWorkerRegistration | undefined) => void
+    onRegisterError?: (error: any) => void
+  }
+
+  export function useRegisterSW(options?: RegisterSWOptions): {
+    needRefresh: Ref<boolean>
+    offlineReady: Ref<boolean>
+    updateServiceWorker: (reloadPage?: boolean) => Promise<void>
+  }
+}
+
 interface Window {
 interface Window {
   scrollY: number;
   scrollY: number;
   scrollTo(options: ScrollToOptions): void;
   scrollTo(options: ScrollToOptions): void;

+ 1 - 1
src/views/Favorite.vue

@@ -154,7 +154,7 @@ async function installPWA() {
 // Prompt 就绪回调
 // Prompt 就绪回调
 function handlePromptReady(prompt: any) {
 function handlePromptReady(prompt: any) {
   console.log('✅ PWA 安装 prompt 已就绪');
   console.log('✅ PWA 安装 prompt 已就绪');
-  canInstallPWA.value = true;
+  canInstallPWA.value = false;
 }
 }
 
 
 onMounted(() => {
 onMounted(() => {