import tailwindcss from "@tailwindcss/vite"; import react from "@vitejs/plugin-react"; import path from "node:path"; import { visualizer } from "rollup-plugin-visualizer"; import { defineConfig } from "vite"; import { VitePWA } from "vite-plugin-pwa"; import createHtmlPlugin from "vite-plugin-simple-html"; // https://vitejs.dev/config/ export default defineConfig({ server: { port: 5173, host: true, }, plugins: [ react(), tailwindcss(), visualizer({ open: process.env.NODE_ENV !== "CI", filename: "./dist/stats.html", }), createHtmlPlugin({ minify: true, inject: { data: { mainScript: `src/main.tsx`, }, }, }), VitePWA({ registerType: "autoUpdate", workbox: { globPatterns: ["**/*.{js,css,html,ico,png,svg,woff,woff2}"], maximumFileSizeToCacheInBytes: 5 * 1024 * 1024, // 5 MiB }, manifest: false, // Use existing manifest.json from public/ }), ], define: process.env.NODE_ENV === "production" && process.env.VITE_SUPABASE_URL ? { "import.meta.env.VITE_IS_DEMO": JSON.stringify( process.env.VITE_IS_DEMO, ), "import.meta.env.VITE_SUPABASE_URL": JSON.stringify( process.env.VITE_SUPABASE_URL, ), "import.meta.env.VITE_SB_PUBLISHABLE_KEY": JSON.stringify( process.env.VITE_SB_PUBLISHABLE_KEY, ), "import.meta.env.VITE_INBOUND_EMAIL": JSON.stringify( process.env.VITE_INBOUND_EMAIL, ), "import.meta.env.VITE_ATTACHMENTS_BUCKET": JSON.stringify( process.env.VITE_ATTACHMENTS_BUCKET, ), } : undefined, base: "./", esbuild: { keepNames: true, }, build: { sourcemap: true, }, resolve: { preserveSymlinks: true, alias: { "@": path.resolve(__dirname, "./src"), }, }, });