import { fileURLToPath, URL } from 'node:url' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' import { loadEnv } from 'vite' import type { UserConfig, ConfigEnv } from 'vite' import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' import path from 'path'; const root = process.cwd() import vue from '@vitejs/plugin-vue' // https://vitejs.dev/config/ export default ({ command, mode }: ConfigEnv): UserConfig => { let env = {} as any const isBuild = command === 'build' if (!isBuild) { env = loadEnv((process.argv[3] === '--mode' ? process.argv[4] : process.argv[3]), root) } else { env = loadEnv(mode, root) } return { plugins: [ vue(), AutoImport({ resolvers: [ElementPlusResolver()], }), Components({ resolvers: [ElementPlusResolver()], }), createSvgIconsPlugin({ iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')], symbolId: 'icon-[dir]-[name]', }), ], build: { minify: 'terser', outDir: env.VITE_OUT_DIR || 'dist', terserOptions: { compress: { drop_console: false } } }, resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) } }, } }