83 lines
2.2 KiB
TypeScript
83 lines
2.2 KiB
TypeScript
import { execSync } from 'node:child_process'
|
||
import { fileURLToPath } from 'node:url'
|
||
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'
|
||
import { defineConfig, loadEnv } from 'vite'
|
||
|
||
const srcDir = fileURLToPath(new URL('./src', import.meta.url))
|
||
|
||
function resolveCommitInfo() {
|
||
try {
|
||
return execSync('git show -s --format=%cs(%h)', { stdio: ['ignore', 'pipe', 'ignore'] }).toString().trim()
|
||
} catch {
|
||
return 'unknown'
|
||
}
|
||
}
|
||
|
||
export default defineConfig(({ mode }) => {
|
||
const env = loadEnv(mode, process.cwd(), '')
|
||
|
||
return {
|
||
base: './',
|
||
plugins: [
|
||
vue(),
|
||
AutoImport({
|
||
dts: './auto-imports.d.ts',
|
||
resolvers: [ElementPlusResolver()]
|
||
}),
|
||
Components({
|
||
dts: './components.d.ts',
|
||
resolvers: [ElementPlusResolver()]
|
||
})
|
||
],
|
||
resolve: {
|
||
alias: {
|
||
'@': srcDir
|
||
}
|
||
},
|
||
define: {
|
||
__APP_VERSION__: JSON.stringify(resolveCommitInfo())
|
||
},
|
||
server: {
|
||
port: 8080,
|
||
proxy: {
|
||
'/api': {
|
||
target: env.VITE_APP_PROXY_TARGET,
|
||
changeOrigin: true
|
||
}
|
||
}
|
||
},
|
||
build: {
|
||
sourcemap: false,
|
||
rollupOptions: {
|
||
output: {
|
||
manualChunks(id) {
|
||
if (id.includes('/node_modules/vue/') || id.includes('/node_modules/vue-router/') || id.includes('/node_modules/vuex/')) {
|
||
return 'vue'
|
||
}
|
||
if (id.includes('/node_modules/element-plus/') || id.includes('/node_modules/@element-plus/')) {
|
||
return 'element-plus'
|
||
}
|
||
if (id.includes('/node_modules/echarts/')) {
|
||
return 'echarts'
|
||
}
|
||
if (id.includes('/node_modules/hls.js/')) {
|
||
return 'media'
|
||
}
|
||
if (id.includes('/node_modules/')) {
|
||
return 'vendor'
|
||
}
|
||
if (id.includes('/src/views/system/')) {
|
||
return 'system'
|
||
}
|
||
if (id.includes('/src/views/api/')) {
|
||
return 'api'
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}) |