包含前后端完整代码: - 前端:Vue3+Vite+ElementPlus - 后端:FastAPI+SQLAlchemy - 模块:驾驶舱/KPI/战略地图/预警/预算/成本/预测/改善行动 - 当前版本:v1.0.0
60 lines
1.7 KiB
TypeScript
60 lines
1.7 KiB
TypeScript
import { defineConfig } 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 { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
|
|
|
|
// https://vitejs.dev/config/
|
|
export default defineConfig({
|
|
plugins: [
|
|
vue(),
|
|
// Element Plus 按需自动导入
|
|
AutoImport({
|
|
resolvers: [ElementPlusResolver()],
|
|
}),
|
|
Components({
|
|
resolvers: [ElementPlusResolver()],
|
|
}),
|
|
],
|
|
resolve: {
|
|
alias: {
|
|
'@': resolve(__dirname, 'src'),
|
|
},
|
|
},
|
|
server: {
|
|
port: 5173,
|
|
hmr: true,
|
|
watch: {
|
|
usePolling: false,
|
|
},
|
|
proxy: {
|
|
'/api': {
|
|
target: 'http://localhost:8010',
|
|
changeOrigin: true,
|
|
},
|
|
},
|
|
},
|
|
build: {
|
|
target: 'es2020',
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks(id: string) {
|
|
if (id.includes('node_modules/vue') || id.includes('node_modules/@vue')) return 'vendor-vue'
|
|
if (id.includes('node_modules/axios')) return 'vendor-axios'
|
|
if (id.includes('node_modules/element-plus') || id.includes('node_modules/@element-plus')) return 'vendor-element'
|
|
if (id.includes('node_modules/echarts')) return 'vendor-echarts'
|
|
if (id.includes('node_modules/codemirror') || id.includes('node_modules/@codemirror')) return 'vendor-codemirror'
|
|
if (id.includes('node_modules/@vueuse') || id.includes('node_modules/pinia') || id.includes('node_modules/vue-router')) return 'vendor-vue-extra'
|
|
},
|
|
},
|
|
},
|
|
chunkSizeWarningLimit: 1200,
|
|
sourcemap: false,
|
|
minify: 'esbuild',
|
|
cssMinify: true,
|
|
reportCompressedSize: false,
|
|
cssCodeSplit: true,
|
|
},
|
|
})
|