Files
Canto/canto-frontend/vite.config.ts
bdim404 2fa9c1fcb6 refactor: rename backend/frontend dirs and remove NovelWriter submodule
- Rename qwen3-tts-backend → canto-backend
- Rename qwen3-tts-frontend → canto-frontend
- Remove NovelWriter embedded repo

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 18:03:29 +08:00

58 lines
1.6 KiB
TypeScript

import path from "path"
import react from "@vitejs/plugin-react"
import { defineConfig } from "vite"
export default defineConfig({
plugins: [react()],
server: {
proxy: {
'/api': {
target: 'http://127.0.0.1:8000',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ''),
},
},
},
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
},
},
optimizeDeps: {
include: ['@arraypress/waveform-player']
},
build: {
rollupOptions: {
output: {
manualChunks(id) {
if (id.includes('node_modules')) {
if (id.includes('react') || id.includes('react-dom') || id.includes('react-router-dom')) {
return 'react-vendor';
}
if (id.includes('lucide-react')) {
return 'icons';
}
if (id.includes('@radix-ui')) {
return 'radix-ui';
}
if (id.includes('react-hook-form') || id.includes('zod') || id.includes('@hookform')) {
return 'form-vendor';
}
if (id.includes('i18next')) {
return 'i18n';
}
if (id.includes('@arraypress/waveform-player') || id.includes('sonner')) {
return 'audio';
}
if (id.includes('axios') || id.includes('clsx') || id.includes('tailwind-merge') ||
id.includes('class-variance-authority') || id.includes('next-themes')) {
return 'utils';
}
}
},
},
},
chunkSizeWarningLimit: 500,
},
})