2026-04-24 10:42:11 +08:00
|
|
|
import { defineConfig, loadEnv } from 'vite'
|
2026-04-21 22:07:29 +08:00
|
|
|
import vue from '@vitejs/plugin-vue'
|
|
|
|
|
import AutoImport from 'unplugin-auto-import/vite'
|
|
|
|
|
import Components from 'unplugin-vue-components/vite'
|
|
|
|
|
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
|
|
|
|
|
|
2026-04-24 10:42:11 +08:00
|
|
|
export default defineConfig(({ mode }) => {
|
|
|
|
|
const env = loadEnv(mode, new URL('.', import.meta.url).pathname, '')
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
base: env.VITE_APP_BASE || '/',
|
|
|
|
|
plugins: [
|
|
|
|
|
vue(),
|
|
|
|
|
AutoImport({
|
|
|
|
|
resolvers: [ElementPlusResolver()],
|
|
|
|
|
}),
|
|
|
|
|
Components({
|
|
|
|
|
resolvers: [ElementPlusResolver()],
|
|
|
|
|
}),
|
|
|
|
|
],
|
|
|
|
|
resolve: {
|
|
|
|
|
alias: {
|
|
|
|
|
'@': new URL('./src', import.meta.url).pathname,
|
|
|
|
|
},
|
2026-04-21 22:07:29 +08:00
|
|
|
},
|
2026-04-28 16:08:07 +08:00
|
|
|
build: {
|
|
|
|
|
chunkSizeWarningLimit: 1000,
|
|
|
|
|
rollupOptions: {
|
|
|
|
|
output: {
|
|
|
|
|
manualChunks(id) {
|
|
|
|
|
if (!id.includes('node_modules')) return undefined
|
|
|
|
|
if (id.includes('element-plus')) return 'element-plus'
|
|
|
|
|
if (id.includes('@element-plus/icons-vue')) return 'element-plus-icons'
|
|
|
|
|
if (id.includes('vue-router')) return 'vue-router'
|
|
|
|
|
if (id.includes('pinia')) return 'pinia'
|
|
|
|
|
if (id.includes('axios')) return 'axios'
|
|
|
|
|
return 'vendor'
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2026-04-24 10:42:11 +08:00
|
|
|
server: {
|
|
|
|
|
port: 5173,
|
|
|
|
|
proxy: {
|
|
|
|
|
'/api': {
|
2026-04-28 16:08:07 +08:00
|
|
|
target: 'http://192.168.116.9:8081',
|
2026-04-24 10:42:11 +08:00
|
|
|
changeOrigin: true,
|
|
|
|
|
},
|
2026-04-21 22:07:29 +08:00
|
|
|
},
|
|
|
|
|
},
|
2026-04-24 10:42:11 +08:00
|
|
|
}
|
2026-04-21 22:07:29 +08:00
|
|
|
})
|