Files
MuMuAINovel/frontend/vite.config.ts
T
2026-03-16 11:34:07 +08:00

55 lines
1.5 KiB
TypeScript

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import { readFileSync } from 'fs'
import { resolve } from 'path'
// 读取 package.json 获取版本号
const packageJson = JSON.parse(
readFileSync(resolve(__dirname, 'package.json'), 'utf-8')
)
// https://vite.dev/config/
export default defineConfig({
plugins: [react()],
// 定义全局常量,在构建时注入
define: {
'import.meta.env.VITE_APP_VERSION': JSON.stringify(packageJson.version),
'import.meta.env.VITE_BUILD_TIME': JSON.stringify(
new Date().toISOString().split('T')[0]
),
},
build: {
outDir: '../backend/static',
emptyOutDir: true,
rollupOptions: {
output: {
// 手动分割代码块,将大型依赖库分离
manualChunks: {
// React 核心库
'vendor-react': ['react', 'react-dom', 'react-router-dom'],
// Ant Design UI库(最大的依赖)
'vendor-antd': ['antd', '@ant-design/icons'],
// 其他工具库
'vendor-utils': ['axios', 'dayjs', 'zustand'],
// Diff查看器(较大的组件)
'vendor-diff': ['react-diff-viewer-continued'],
// 拖拽库
'vendor-dnd': ['@dnd-kit/core', '@dnd-kit/sortable', '@dnd-kit/utilities'],
},
},
},
},
server: {
proxy: {
'/api': {
target: 'http://localhost:8000',
changeOrigin: true,
},
'/generated-assets': {
target: 'http://localhost:8000',
changeOrigin: true,
}
}
}
})