Files

59 lines
1.6 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/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,
},
})