import { fileURLToPath, URL } from 'url' import { defineConfig, loadEnv } from 'vite' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' import { createStyleImportPlugin, ElementPlusResolve } from 'vite-plugin-style-import' import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' import vueSetupExtend from 'vite-plugin-vue-setup-extend' // import legacyPlugin from '@vitejs/plugin-legacy' // https://vitejs.dev/config/ export default ({ mode }) => defineConfig({ base: '/admin/', server: { host: '0.0.0.0' }, plugins: [ vue(), vueJsx(), AutoImport({ imports: ['vue', 'vue-router'], resolvers: [ElementPlusResolver()], eslintrc: { enabled: true } }), Components({ directoryAsNamespace: true, resolvers: [ElementPlusResolver()] }), createStyleImportPlugin({ resolves: [ElementPlusResolve()] }), createSvgIconsPlugin({ // 配置路劲在你的src里的svg存放文件 iconDirs: [fileURLToPath(new URL('./src/assets/icons', import.meta.url))], symbolId: 'local-icon-[dir]-[name]' }), vueSetupExtend() // legacyPlugin({ // targets: ['defaults', 'IE 11'] // }) ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) } }, build: { rollupOptions: { manualChunks(id) { if (id.includes('node_modules')) { return id.toString().split('node_modules/')[1].split('/')[0].toString() } } }, outDir: loadEnv(mode, process.cwd()).VITE_NOW_TYPE }, })