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: "./", 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", }, });