47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
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))
|
||
},
|
||
},
|
||
}))
|