diff options
| author | Pinapelz <yukais@pinapelz.com> | 2025-06-06 22:10:53 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2025-06-06 22:22:15 -0700 |
| commit | cc82faa15d8d6762a520ab23f858cb3c667559f9 (patch) | |
| tree | 8895812ad19d41c205fe40deae198510c4adbc2b /site/vite.config.ts | |
| parent | 8d4a3eeb3a68e39301caec1b2289783bd2bf7b6d (diff) | |
add PWA support
Diffstat (limited to 'site/vite.config.ts')
| -rw-r--r-- | site/vite.config.ts | 50 |
1 files changed, 49 insertions, 1 deletions
diff --git a/site/vite.config.ts b/site/vite.config.ts index 4413fad..891f9c8 100644 --- a/site/vite.config.ts +++ b/site/vite.config.ts @@ -1,8 +1,56 @@ import { defineConfig } from 'vite' import tailwindcss from '@tailwindcss/vite' import react from '@vitejs/plugin-react-swc' +import { VitePWA } from 'vite-plugin-pwa' +import icons from './public/icons.json' // https://vite.dev/config/ export default defineConfig({ - plugins: [react(), tailwindcss()], + plugins: [react(), tailwindcss(), + VitePWA({ + registerType: 'autoUpdate', + manifest: { + name: '573-UPDATES', + short_name: '573-UPDATES', + description: 'A scraper and aggregator of information/news for various arcade games. Currently supports various KONAMI/BEMANI and Performai', + theme_color: '#FD0B78', + background_color: '#101828', + display: 'standalone', + start_url: '/', + icons: icons.icons + }, + workbox: { + globPatterns: ['**/*.{js,css,html,ico,png,svg}'], + runtimeCaching: [ + { + urlPattern: ({ request }) => request.destination === 'document', + handler: 'NetworkFirst', + options: { + cacheName: 'html-cache', + }, + }, + { + urlPattern: ({ request }) => + ['style', 'script', 'worker'].includes(request.destination), + handler: 'StaleWhileRevalidate', + options: { + cacheName: 'static-resources', + }, + }, + { + urlPattern: ({ request }) => + ['image', 'font'].includes(request.destination), + handler: 'CacheFirst', + options: { + cacheName: 'asset-cache', + expiration: { + maxEntries: 50, + maxAgeSeconds: 30 * 24 * 60 * 60, + }, + }, + }, + ], + }, + }) + ], }) |
