60 lines
1.8 KiB
JavaScript
60 lines
1.8 KiB
JavaScript
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']
|
|
}
|
|
}
|
|
});
|