35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
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
|
|
}
|