Files
lightrag/lightrag_webui/vite.config.ts
yangdx 3f6423df33 Fix KaTeX extension loading by moving imports to app startup
• Move mhchem/copy-tex to main.tsx
• Add katex to Vite dedupe config
• Remove dynamic extension loading
• Ensure extensions available globally
• Fix chemistry formula rendering
2025-12-01 12:44:04 +08:00

53 lines
1.8 KiB
TypeScript

import { defineConfig } from 'vite'
import path from 'path'
import { webuiPrefix } from '@/lib/constants'
import react from '@vitejs/plugin-react-swc'
import tailwindcss from '@tailwindcss/vite'
// https://vite.dev/config/
export default defineConfig({
plugins: [react(), tailwindcss()],
resolve: {
alias: {
'@': path.resolve(__dirname, './src')
},
// Force all modules to use the same katex instance
// This ensures mhchem extension registered in main.tsx is available to rehype-katex
dedupe: ['katex']
},
// base: import.meta.env.VITE_BASE_URL || '/webui/',
base: webuiPrefix,
build: {
outDir: path.resolve(__dirname, '../lightrag/api/webui'),
emptyOutDir: true,
chunkSizeWarningLimit: 3800,
rollupOptions: {
// Let Vite handle chunking automatically to avoid circular dependency issues
output: {
// Ensure consistent chunk naming format
chunkFileNames: 'assets/[name]-[hash].js',
// Entry file naming format
entryFileNames: 'assets/[name]-[hash].js',
// Asset file naming format
assetFileNames: 'assets/[name]-[hash].[ext]'
}
}
},
server: {
proxy: import.meta.env.VITE_API_PROXY === 'true' && import.meta.env.VITE_API_ENDPOINTS ?
Object.fromEntries(
import.meta.env.VITE_API_ENDPOINTS.split(',').map(endpoint => [
endpoint,
{
target: import.meta.env.VITE_BACKEND_URL || 'http://localhost:9621',
changeOrigin: true,
rewrite: endpoint === '/api' ?
(path) => path.replace(/^\/api/, '') :
endpoint === '/docs' || endpoint === '/redoc' || endpoint === '/openapi.json' || endpoint === '/static' ?
(path) => path : undefined
}
])
) : {}
}
})