Files
vue-desktop/vite.config.ts

52 lines
1.2 KiB
TypeScript
Raw Permalink Normal View History

2025-08-19 14:56:38 +08:00
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import vueDevTools from 'vite-plugin-vue-devtools'
import UnoCSS from 'unocss/vite'
// https://vite.dev/config/
export default defineConfig({
plugins: [
2025-09-10 15:44:10 +08:00
vue({
template: {
compilerOptions: {
2025-11-27 14:15:06 +08:00
isCustomElement: (tag) => tag.endsWith('-element') // 忽略自定义元素
2025-09-10 15:44:10 +08:00
}
}
}),
2025-08-19 14:56:38 +08:00
vueJsx(),
vueDevTools(),
UnoCSS()
],
resolve: {
alias: {
2025-09-24 16:43:10 +08:00
'@': fileURLToPath(new URL('./src', import.meta.url)),
2025-11-27 14:15:06 +08:00
vue: 'vue/dist/vue.esm-bundler.js'
2025-08-19 14:56:38 +08:00
}
2025-09-25 15:31:11 +08:00
},
build: {
rollupOptions: {
output: {
// 配置代码分割
manualChunks: {
// 将Vue相关库打包到单独的chunk中
2025-11-27 14:15:06 +08:00
vue: ['vue', 'pinia'],
2025-09-25 15:31:11 +08:00
// 将UI库打包到单独的chunk中
ui: ['naive-ui'],
// 将工具库打包到单独的chunk中
utils: ['lodash', 'uuid'],
// 将VueUse打包到单独的chunk中
vueuse: ['@vueuse/core']
}
}
},
// 启用压缩
minify: 'esbuild',
// 启用CSS代码分割
cssCodeSplit: true
2025-08-19 14:56:38 +08:00
}
2025-11-27 14:15:06 +08:00
})