import path from "path"; import fs from "fs"; import tailwindcss from "@tailwindcss/vite"; import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; const sslCertPath = path.join(process.cwd(), "ssl/termix.crt"); const sslKeyPath = path.join(process.cwd(), "ssl/termix.key"); const hasSSL = fs.existsSync(sslCertPath) && fs.existsSync(sslKeyPath); const useHTTPS = process.env.VITE_HTTPS === "true" && hasSSL; export default defineConfig({ plugins: [react(), tailwindcss()], resolve: { alias: { "@": path.resolve(__dirname, "./src"), }, }, base: process.env.VITE_BASE_PATH || "./", build: { sourcemap: false, rollupOptions: { output: { manualChunks: { "react-vendor": ["react", "react-dom"], "ui-vendor": [ "@radix-ui/react-dialog", "@radix-ui/react-dropdown-menu", "@radix-ui/react-select", "@radix-ui/react-tabs", "@radix-ui/react-switch", "@radix-ui/react-tooltip", "@radix-ui/react-scroll-area", "@radix-ui/react-separator", "lucide-react", "clsx", "tailwind-merge", "class-variance-authority", ], monaco: ["monaco-editor"], codemirror: [ "@uiw/react-codemirror", "@codemirror/view", "@codemirror/state", "@codemirror/language", "@codemirror/commands", "@codemirror/search", "@codemirror/autocomplete", ], }, }, }, chunkSizeWarningLimit: 1000, }, server: { https: useHTTPS ? { cert: fs.readFileSync(sslCertPath), key: fs.readFileSync(sslKeyPath), } : false, port: 5173, host: "localhost", }, });