import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import { TanStackRouterVite } from "@tanstack/router-vite-plugin"; import { VitePWA } from "vite-plugin-pwa"; // https://vite.dev/config/ export default defineConfig({ plugins: [ TanStackRouterVite(), react(), VitePWA({ registerType: "autoUpdate", includeAssets: ["favicon.ico", "apple-touch-icon-180x180.png", "maskable-icon-512x512.png"], manifest: { name: "Leggen", short_name: "Leggen", description: "Personal finance management application", theme_color: "#ffffff", background_color: "#ffffff", display: "standalone", orientation: "portrait", scope: "/", start_url: "/", categories: ["finance", "productivity"], icons: [ { src: "pwa-64x64.png", sizes: "64x64", type: "image/png" }, { src: "pwa-192x192.png", sizes: "192x192", type: "image/png" }, { src: "pwa-512x512.png", sizes: "512x512", type: "image/png" }, { src: "maskable-icon-512x512.png", sizes: "512x512", type: "image/png", purpose: "maskable" } ], }, workbox: { globPatterns: ["**/*.{js,css,html,ico,png,svg}"], runtimeCaching: [ { urlPattern: /^https:\/\/.*\/api\//, handler: "NetworkFirst", options: { cacheName: "api-cache", networkTimeoutSeconds: 10, cacheableResponse: { statuses: [0, 200], }, }, }, ], }, devOptions: { enabled: true, }, }), ], resolve: { alias: { "@": "/src", }, }, });