70 lines
1.9 KiB
TypeScript
70 lines
1.9 KiB
TypeScript
import { defineConfig } from 'vite'
|
||
import react from '@vitejs/plugin-react'
|
||
import path from 'path'
|
||
import svgr from "vite-plugin-svgr";
|
||
|
||
// https://vite.dev/config/
|
||
export default defineConfig({
|
||
plugins: [
|
||
react(),
|
||
svgr({
|
||
svgrOptions: {
|
||
icon: true,
|
||
prettier: true,
|
||
},
|
||
}),
|
||
],
|
||
build: {
|
||
rollupOptions: {
|
||
output: {
|
||
// 优化缓存策略,使用内容哈希,启用长期缓存
|
||
entryFileNames: 'assets/[name]-[hash].js',
|
||
chunkFileNames: 'assets/[name]-[hash].js',
|
||
assetFileNames: 'assets/[name]-[hash].[ext]',
|
||
manualChunks: (id) => {
|
||
// SVG 文件分割策略
|
||
if (id.includes('.svg') && id.includes('?react')) {
|
||
// 排除 chunk-method 文件夹的 SVG
|
||
if (id.includes('/chunk-method/')) {
|
||
// 不打包 chunk-method 的 SVG,让它们保持为独立的资源文件
|
||
return undefined;
|
||
}
|
||
|
||
// 其他 SVG 文件正常分割
|
||
if (id.includes('/llm/')) {
|
||
return 'svg-llm';
|
||
} else if (id.includes('/file-icon/')) {
|
||
return 'svg-file';
|
||
} else {
|
||
return 'svg-common';
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
},
|
||
server: {
|
||
host: '0.0.0.0',
|
||
allowedHosts: ['154.9.253.114', 'localhost', 'teres.deep-pilot.chat'],
|
||
proxy: {
|
||
// 将 /ragflow 下的所有请求代理到 Umi 开发服务器(默认 9222)
|
||
'/ragflow': {
|
||
target: 'http://localhost:9222',
|
||
changeOrigin: true,
|
||
ws: true,
|
||
// 不重写路径,保持 /ragflow 前缀用于 Umi base/publicPath
|
||
},
|
||
'/__umi': {
|
||
target: 'http://localhost:9222',
|
||
changeOrigin: true,
|
||
ws: true,
|
||
},
|
||
}
|
||
},
|
||
resolve: {
|
||
alias: {
|
||
'@': path.resolve(__dirname, './src'),
|
||
},
|
||
},
|
||
})
|