import vue from '@vitejs/plugin-vue' // config alias import path from 'path' import { ConfigEnv, defineConfig, UserConfigExport } from 'vite' import ViteComponents, { AntDesignVueResolver } from 'vite-plugin-components' // Introduce eslint plugin import eslintPlugin from 'vite-plugin-eslint' import OptimizationPersist from 'vite-plugin-optimize-persist' import PkgConfig from 'vite-plugin-package-config' import viteSvgIcons from 'vite-plugin-svg-icons' import { viteVConsole } from 'vite-plugin-vconsole' // https://vitejs.dev/config/ export default ({ command, mode }: ConfigEnv): UserConfigExport => defineConfig({ plugins: [ vue(), eslintPlugin({ fix: true }), ViteComponents({ customComponentResolvers: [AntDesignVueResolver()], }), viteSvgIcons({ // 指定需要缓存的图标文件夹 iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')], // 指定symbolId格式 symbolId: 'icon-[dir]-[name]', }), viteVConsole({ entry: path.resolve(__dirname, './src/main.ts'), // 入口文件 localEnabled: command === 'serve', // serve开发环境下 // enabled: command !== 'serve' || mode === 'test', // 打包环境下/发布测试包, config: { // vconsole 配置项 maxLogNumber: 1000, theme: 'light' } }), PkgConfig(), OptimizationPersist() // [svgBuilder('./src/assets/icons/')] // All svg under src/icons/svg/ have been imported here, no need to import separately ], server: { open: true, host: '0.0.0.0', port: 8080 }, envDir: './env', resolve: { alias: [{ // https://github.com/vitejs/vite/issues/279#issuecomment-635646269 find: '/@', replacement: path.resolve(__dirname, './src'), } ] }, css: { preprocessorOptions: { scss: { // example : additionalData: `@import "./src/design/styles/variables";` // dont need include file extend .scss additionalData: '@import "./src/styles/variables";' }, } }, base: '/', build: { target: ['es2015'], // 最低支持 es2015 sourcemap: true } })