import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import path from 'path' import UnoCss from 'unocss/vite' import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import IconsResolver from 'unplugin-icons/resolver' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' import monacoEditorPlugin from 'vite-plugin-monaco-editor' // https://vite.dev/config/ export default defineConfig({ plugins: [ vue(), UnoCss(), createSvgIconsPlugin({ // 指定存放 SVG 的文件夹 iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')], symbolId: 'svg-icon-[dir]-[name]' }), // 代码编辑器 (monacoEditorPlugin as any).default({ languageWorkers: ['editorWorkerService', 'typescript', 'json', 'html', 'css'] }), // 按需求加载(模板) AutoImport({ imports: ['vue'], resolvers: [ IconsResolver({ prefix: 'Icon' }), ElementPlusResolver() ], dts: 'auto-imports.d.ts' }), Components({ resolvers: [ // 自动注册图标组件 IconsResolver({ enabledCollections: ['ep'] }), ElementPlusResolver() ], dts: 'components.d.ts' }) ], resolve: { alias: { '@': path.resolve(__dirname, 'src') } } })