aboutsummaryrefslogtreecommitdiffhomepage
path: root/vite.config.ts
diff options
context:
space:
mode:
Diffstat (limited to 'vite.config.ts')
-rw-r--r--vite.config.ts45
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",