diff options
Diffstat (limited to 'vite.config.ts')
| -rw-r--r-- | vite.config.ts | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/vite.config.ts b/vite.config.ts index 757a0af..b35f941 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,8 +1,51 @@ import react from "@vitejs/plugin-react"; import { defineConfig } from "vite"; +import { VitePWA } from "vite-plugin-pwa"; export default defineConfig({ - plugins: [react()], + plugins: [ + react(), + VitePWA({ + registerType: "autoUpdate", + includeAssets: ["icon.svg"], + manifest: { + name: "Kioku", + short_name: "Kioku", + description: "A spaced repetition learning app", + theme_color: "#4CAF50", + background_color: "#ffffff", + display: "standalone", + scope: "/", + start_url: "/", + icons: [ + { + src: "icon.svg", + sizes: "any", + type: "image/svg+xml", + purpose: "any maskable", + }, + ], + }, + workbox: { + globPatterns: ["**/*.{js,css,html,svg,png,ico,woff,woff2}"], + runtimeCaching: [ + { + urlPattern: /^https:\/\/.*\.(?:png|jpg|jpeg|svg|gif|webp)$/, + handler: "CacheFirst", + options: { + cacheName: "images-cache", + expiration: { + maxEntries: 50, + maxAgeSeconds: 60 * 60 * 24 * 30, + }, + }, + }, + ], + navigateFallback: "/offline.html", + navigateFallbackDenylist: [/^\/api\//], + }, + }), + ], root: ".", build: { outDir: "dist/client", |
