import type { PluginOption } from 'vite' import path from 'node:path' import process from 'node:process' import { FileSystemIconLoader } from 'unplugin-icons/loaders' import IconsResolver from 'unplugin-icons/resolver' import Icons from 'unplugin-icons/vite' import { NaiveUiResolver } from 'unplugin-vue-components/resolvers' import Components from 'unplugin-vue-components/vite' import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' // 配置 unplugin 插件 export function setupUnplugin(viteEnv: Env.ImportMeta) { const { VITE_ICON_PREFIX, VITE_ICON_LOCAL_PREFIX } = viteEnv const localIconPath = path.join(process.cwd(), 'src/assets/svg-icon') // 本地图标集合名称 const collectionName = VITE_ICON_LOCAL_PREFIX.replace(`${VITE_ICON_PREFIX}-`, '') const plugins: PluginOption[] = [ Icons({ compiler: 'vue3', customCollections: { [collectionName]: FileSystemIconLoader(localIconPath, svg => svg.replace(/^