Files
low-code-react-app-b/vite.config.ts
johndoe6345789 bef28e8c91 feat: add Timestamp and Toggle components; implement TreeIcon and EditorActions components
- Introduced Timestamp component for displaying formatted dates and relative time.
- Added Toggle component for switch-like functionality with customizable sizes.
- Implemented TreeIcon component for rendering tree icons using Phosphor icons.
- Created EditorActions component for explain and improve actions with icons.
- Developed FileTabs component for managing open files with close functionality.
- Added LazyInlineMonacoEditor and LazyMonacoEditor for lazy loading Monaco editor.
- Implemented NavigationItem for navigation with badges and icons.
- Created PageHeaderContent for displaying page headers with icons and descriptions.
- Added JSON configuration files for various UI components and layouts.
- Enhanced data binding with new computed data source hook.
- Updated component registry and types for new components.
- Configured Vite for improved hot module replacement experience.
2026-01-18 21:42:51 +00:00

95 lines
2.4 KiB
TypeScript

import tailwindcss from "@tailwindcss/vite";
import react from "@vitejs/plugin-react-swc";
import { defineConfig, PluginOption } from "vite";
import { resolve } from 'path'
import sparkPlugin from "./src/lib/spark-vite-plugin";
import createIconImportProxy from "./src/lib/vite-phosphor-icon-proxy-plugin";
const projectRoot = process.env.PROJECT_ROOT || import.meta.dirname
// https://vite.dev/config/
export default defineConfig({
base: './',
plugins: [
react(),
tailwindcss(),
// DO NOT REMOVE
createIconImportProxy() as PluginOption,
sparkPlugin() as PluginOption,
],
resolve: {
alias: {
'@': resolve(projectRoot, 'src')
}
},
server: {
host: '0.0.0.0',
port: 5000,
strictPort: false,
hmr: {
overlay: false,
},
},
preview: {
host: '0.0.0.0',
port: Number(process.env.PORT) || 80,
strictPort: false,
},
build: {
outDir: 'dist',
emptyOutDir: true,
rollupOptions: {
output: {
manualChunks: {
'react-vendor': ['react', 'react-dom'],
'ui-core': [
'@radix-ui/react-dialog',
'@radix-ui/react-dropdown-menu',
'@radix-ui/react-tabs',
'@radix-ui/react-select',
'@radix-ui/react-popover',
],
'ui-extended': [
'@radix-ui/react-accordion',
'@radix-ui/react-alert-dialog',
'@radix-ui/react-context-menu',
'@radix-ui/react-hover-card',
'@radix-ui/react-menubar',
'@radix-ui/react-navigation-menu',
'@radix-ui/react-scroll-area',
],
'form-components': [
'react-hook-form',
'@hookform/resolvers',
'zod',
],
'code-editor': ['@monaco-editor/react'],
'data-viz': ['d3', 'recharts'],
'workflow': ['reactflow'],
'icons': ['@phosphor-icons/react', 'lucide-react'],
'utils': ['clsx', 'tailwind-merge', 'date-fns', 'uuid'],
},
},
},
chunkSizeWarningLimit: 1000,
sourcemap: false,
minify: 'terser',
terserOptions: {
compress: {
drop_console: true,
drop_debugger: true,
pure_funcs: ['console.log', 'console.time', 'console.timeEnd'],
},
},
},
optimizeDeps: {
include: [
'react',
'react-dom',
'@radix-ui/react-dialog',
'@radix-ui/react-tabs',
],
},
});