import { execSync } from "node:child_process"; import { readFileSync } from "node:fs"; import path from "node:path"; import tailwindcss from "@tailwindcss/vite"; import tanstackRouter from "@tanstack/router-plugin/vite"; import react from "@vitejs/plugin-react"; import { defineConfig } from "vite"; import { VitePWA } from "vite-plugin-pwa"; const pkg = JSON.parse(readFileSync("./package.json", "utf-8")); const gitCount = execSync("git rev-list --count HEAD", { encoding: "utf-8", }).trim(); export default defineConfig({ base: "/tpf/", define: { __APP_VERSION__: JSON.stringify(`${pkg.version}+${gitCount}`), }, plugins: [ tanstackRouter(), react(), tailwindcss(), VitePWA({ registerType: "prompt", includeAssets: ["icons/icon-192.png", "icons/icon-512.png"], workbox: { globPatterns: ["**/*.{js,css,html,wasm,data}"], maximumFileSizeToCacheInBytes: 10 * 1024 * 1024, }, manifest: false, }), ], optimizeDeps: { exclude: ["@electric-sql/pglite"], }, resolve: { alias: { "@": path.resolve(__dirname, "./src"), }, }, });