import { fileURLToPath, URL } from 'node:url' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import vueDevTools from 'vite-plugin-vue-devtools' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' // https://vite.dev/config/ export default defineConfig(({ mode }) => ({ plugins: [ vue(), // 仅在开发环境启用 DevTools,避免对生产构建的注入影响打包产物 mode === 'development' && vueDevTools(), AutoImport({ resolvers: [ElementPlusResolver()], }), Components({ resolvers: [ElementPlusResolver()], }), ].filter(Boolean), server: { port: 3000, proxy: { '/api': { target: 'http://localhost:8080', changeOrigin: true, } } }, build: { // 使用相对路径,便于在静态服务器(如 Live Server)直接打开 dist assetsDir: 'assets', // 交给 Vite/Rollup 自己做最佳分包,避免对 Vue 这类存在循环依赖的包强制分块 // 若线上仍遇到压缩器相关问题,可将 minify 切为 'terser' // minify: 'terser', sourcemap: false, }, // 设置基础路径为相对路径,适用于静态文件服务器 base: './', resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) }, }, }))