import { defineConfig } from 'astro/config'; import react from "@astrojs/react"; import tailwind from "@astrojs/tailwind"; import { chunkSplitPlugin } from 'vite-plugin-chunk-split'; // https://astro.build/config export default defineConfig({ output: 'static', // Simplified React integration - fully client-side integrations: [ react({ include: ['**/*.tsx'], ssr: false, // Disable SSR completely experimentalReactChildren: false }), tailwind() ], vite: { server: { allowedHosts: ['chat-with-ai.s38.siliconpin.com','chat-with-ai.s38.siliconpin.com','chat.siliconpin.com','aimodel.beanstalkedu.com'] }, preview: { allowedHosts: ['chat-with-ai.s38.siliconpin.com','chat-with-ai.s38.siliconpin.com','chat.siliconpin.com','aimodel.beanstalkedu.com'] }, // Simplified plugins - focus on critical functionality plugins: [ chunkSplitPlugin({ strategy: 'default', customSplitting: { 'react-vendor': ['react', 'react-dom'] } }) ], // Avoid hydration issues with external packages ssr: { noExternal: ['@radix-ui/*', 'class-variance-authority'] }, build: { chunkSizeWarningLimit: 5000, // Simplified bundling - focus on React rollupOptions: { output: { manualChunks: { 'react-vendor': ['react', 'react-dom'] } } }, minify: 'esbuild', // Use esbuild for faster and simpler minification }, // Deduplicate React packages to prevent multiple instances resolve: { dedupe: ['react', 'react-dom'] }, // Make sure React is optimized properly optimizeDeps: { include: ['react', 'react-dom', '@radix-ui/react-dialog', '@radix-ui/react-dropdown-menu'] } } });