kindergarten_java/lesingle-edu-reading-platform-frontend/vite.config.ts
En 40589f59e7 chore: 重命名项目目录
前后端目录重命名:
- reading-platform-java/ → lesingle-edu-reading-platform-backend/
- reading-platform-frontend/ → lesingle-edu-reading-platform-frontend/

更新相关文件:
- 所有 shell 脚本中的目录引用
- pom.xml 和 application.yml 中的项目名称
- package.json 中的项目名称
- .claude/CLAUDE.md 中的路径引用
- README 文档中的路径引用
2026-03-26 11:31:47 +08:00

88 lines
2.1 KiB
TypeScript

import { defineConfig, loadEnv } from 'vite';
import vue from '@vitejs/plugin-vue';
import { resolve } from 'path';
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers';
import viteCompression from 'vite-plugin-compression';
import fileRouter from 'unplugin-vue-router/vite';
import UnoCSS from 'unocss/vite';
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd(), '');
const port = parseInt(env.VITE_APP_PORT) || 5173;
const backendPort = env.VITE_BACKEND_PORT || '8480';
return {
plugins: [
vue(),
UnoCSS(),
fileRouter({
routesFolder: 'src/views',
extensions: ['.vue'],
importMode: 'sync',
}),
AutoImport({
imports: [
'vue',
'vue-router',
'pinia',
{
'ant-design-vue': ['message', 'notification', 'Modal'],
},
],
dts: 'src/auto-imports.d.ts',
// 添加 vue-router 的自动导入
vueTemplate: true,
}),
Components({
resolvers: [
AntDesignVueResolver({
importStyle: false,
}),
],
dts: 'src/components.d.ts',
}),
viteCompression({
verbose: true,
disable: false,
threshold: 10240,
algorithm: 'gzip',
ext: '.gz',
}),
],
resolve: {
alias: {
'@': resolve(__dirname, 'src'),
},
},
server: {
port,
host: true,
proxy: {
'/api': {
target: `http://localhost:${backendPort}`,
changeOrigin: true,
},
'/uploads': {
target: `http://localhost:${backendPort}`,
changeOrigin: true,
},
},
},
build: {
rollupOptions: {
output: {
manualChunks: {
'ant-design-vue': ['ant-design-vue', '@ant-design/icons-vue'],
'echarts': ['echarts'],
'fullcalendar': ['@fullcalendar/vue3', '@fullcalendar/core', '@fullcalendar/daygrid', '@fullcalendar/timegrid', '@fullcalendar/interaction'],
'dayjs': ['dayjs'],
},
},
},
chunkSizeWarningLimit: 1000,
},
};
});