import IconsResolver from 'unplugin-icons/resolver' import Components from 'unplugin-vue-components/vite' import { ArcoResolver } from 'unplugin-vue-components/resolvers' import type { PluginOption } from 'vite' export function setupAutoImport(viteEnv: Env.ImportMeta) { // 从环境变量中提取图标相关的前缀 const { VITE_ICON_PREFIX, VITE_ICON_LOCAL_PREFIX } = viteEnv // 从本地图标前缀中提取图标集合名称 const collectionName = VITE_ICON_LOCAL_PREFIX.replace(`${VITE_ICON_PREFIX}-`, '') const plugins: PluginOption[] = [ Components({ // 自动导入的组件类型声明文件 dts: 'src/types/auto-import.d.ts', types: [ { from: 'vue-router', names: ['RouterLink', 'RouterView'], }, ], // 配置图标解析器 resolvers: [ IconsResolver({ customCollections: [collectionName], // 本地图标集合 componentPrefix: VITE_ICON_PREFIX, // 图标组件的前缀 }), ArcoResolver(), ], }), ] return plugins }