1import { defineConfig } from "vite";2import solidPlugin from "vite-plugin-solid";3import { crx } from "@crxjs/vite-plugin";4import { readFileSync } from "fs";56const target = process.env.BUILD_TARGET || "chrome";7const manifestPath = target === "firefox" ? "./manifest.firefox.json" : "./manifest.json";8const manifest = JSON.parse(readFileSync(manifestPath, "utf-8"));9const passkeyE2E = process.env.PEACH_E2E_PASSKEYS === "1";1011export default defineConfig({12 plugins: [solidPlugin(), crx({ manifest })],13 base: "./",14 define: {15 __PEACH_E2E_PASSKEYS__: JSON.stringify(passkeyE2E),16 },17 build: {18 outDir: target === "firefox" ? "dist-firefox" : "dist-chrome",19 emptyOutDir: false,20 target: "esnext",21 rollupOptions: {22 output: {23 manualChunks(id) {24 if (id.includes("node_modules/solid-js")) return "vendor-solid";25 if (id.includes("node_modules/otpauth")) return "vendor-otp";26 if (id.includes("node_modules/papaparse")) return "vendor-parse";27 if (id.includes("node_modules/qrcode")) return "vendor-qr";28 },29 },30 },31 },32});