vite.config.ts

1.1 KB · raw

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});