foreign-admin-ui/vite.config.ts

84 lines
2.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'
// 自动导入插件
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
// Element Plus 组件自动导入
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
// https://vite.dev/config/
export default defineConfig(({ mode }) => {
return {
plugins: [
vue(),
vueDevTools(),
//自动导入Vue/路由/Pinia等API无需手动import
AutoImport({
// 适配Element Plus的自动导入
resolvers: [
ElementPlusResolver(),
],
// 指定要自动导入的库
imports: [
'vue', // 自动导入ref、reactive、watch等Vue API
'vue-router', // 自动导入useRoute、useRouter等路由API
'pinia', // 自动导入defineStore等Pinia API
'@vueuse/core', // 自动导入@vueuse的hooks
],
// 生成类型声明文件TypeScript必备解决类型提示问题
dts: 'src/auto-imports.d.ts',
// 自动生成eslint配置解决eslint报"未定义变量"的问题)
eslintrc: {
enabled: true, // 开启后会生成 .eslintrc-auto-import.json
},
}),
// 2. 自动导入组件包括Element Plus和本地组件
Components({
// 自动解析Element Plus组件
resolvers: [
ElementPlusResolver(),
],
// 生成组件类型声明文件
dts: 'src/components.d.ts',
// 指定要自动导入的本地组件目录src/components下的组件无需手动注册
dirs: ['src/components'],
}),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)),
},
},
// 构建配置
build: {
// 输出目录
outDir: 'dist',
// 静态资源目录
assetsDir: 'assets',
// 生产环境移除console和debugger
minify: 'esbuild',
esbuild: {
drop: mode === 'production' ? ['console', 'debugger'] : [],
// 剔除 JS 中的所有注释(包括注释掉的代码)
minifyIdentifiers: true, // 压缩变量名
minifySyntax: true, // 压缩语法(含剔除普通注释)
minifyWhitespace: true, // 剔除空格
},
// 可选:进一步压缩打包产物
// terserOptions: mode === 'production' ? {
// format: {
// comments: false, // 彻底剔除所有注释
// },
// } : {},
},
server: {
host: true,
},
}
})