diff --git a/package.json b/package.json index 7a860fb..f0307c3 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "prettier": "3.9.5", "typescript": "~6.0.0", "vite": "^8.1.5", + "vite-plugin-pwa": "^1.2.0", "vite-plugin-vue-devtools": "^8.1.5", "vitest": "^4.1.10", "vue-eslint-parser": "^10.4.1", diff --git a/vite.config.ts b/vite.config.ts index 0414681..0c6866c 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -3,12 +3,38 @@ import { fileURLToPath, URL } from 'node:url' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import vueDevTools from 'vite-plugin-vue-devtools' +import { VitePWA } from 'vite-plugin-pwa' // https://vite.dev/config/ export default defineConfig({ plugins: [ vue(), vueDevTools(), + VitePWA({ + registerType: 'autoUpdate', + workbox: { + globPatterns: ['**/*.{js,css,html,ico,png,svg}'] + }, + manifest: { + name: 'dittmar.dev', + short_name: 'dttmr', + description: 'dittmar.dev frontend app', + theme_color: '#ffffff', + display: 'standalone', + icons: [ + { + src: 'pwa-192x192.png', + sizes: '192x192', + type: 'image/png', + }, + { + src: 'pwa-512x512.png', + sizes: '512x512', + type: 'image/png', + } + ] + } + }) ], resolve: { alias: {