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;
|
|
}
|