40 lines · 1.4 KB · TypeScript
RawDownload
import { defineConfig, loadEnv } from "vite";import { tanstackStart } from "@tanstack/react-start/plugin/vite";import react from "@vitejs/plugin-react";import tailwindcss from "@tailwindcss/vite";import executorVitePlugin from "@executor-js/vite-plugin"; const PUBLIC_VARS = {  VITE_PUBLIC_SITE_URL: "https://executor.sh",  VITE_PUBLIC_POSTHOG_KEY: "phc_nNLrNMALpRsfrEkZovUkfMxYbcJvHnsJHeoSPavprgLL",}; // VITE_PUBLIC_ANALYTICS_PATH is generated once per build by `scripts/build.mjs`// and inherited via process.env, so the client and SSR/Cloudflare environment// builds bake the same value. The fallback "a" is for `vite dev`, where the// proxy isn't routed anyway.const ANALYTICS_PATH = process.env.VITE_PUBLIC_ANALYTICS_PATH ?? "a"; export default defineConfig(({ mode }) => {  const env = loadEnv(mode, process.cwd(), "");  const publicEnv = {    ...PUBLIC_VARS,    VITE_PUBLIC_ANALYTICS_PATH: ANALYTICS_PATH,    ...env,  };   return {    build: {      rollupOptions: {        external: ["cloudflare:workers"],      },    },    define: Object.fromEntries(      Object.entries(publicEnv)        .filter(([key]) => key.startsWith("VITE_PUBLIC_"))        .map(([key, value]) => [`import.meta.env.${key}`, JSON.stringify(value)]),    ),    resolve: { tsconfigPaths: true },    plugins: [tailwindcss(), executorVitePlugin(), tanstackStart(), react()],  };});