2025-06-16 14:42:26 +08:00
|
|
|
/**
|
|
|
|
|
* 自动引入组件
|
|
|
|
|
* */
|
|
|
|
|
import { kebabCase } from 'unplugin-vue-components';
|
|
|
|
|
import Components from 'unplugin-vue-components/vite';
|
|
|
|
|
|
2025-09-26 13:59:55 +08:00
|
|
|
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers';
|
2025-06-16 14:42:26 +08:00
|
|
|
|
|
|
|
|
import { getSep, getPath, setResolve, layoutsResolver } from '../utils';
|
|
|
|
|
|
|
|
|
|
export function configComponents() {
|
|
|
|
|
return Components({
|
|
|
|
|
dirs: ['src/components'],
|
|
|
|
|
extensions: ['vue'],
|
|
|
|
|
resolvers: [
|
2025-09-26 13:59:55 +08:00
|
|
|
AntDesignVueResolver({
|
|
|
|
|
importStyle: false,
|
2025-06-16 14:42:26 +08:00
|
|
|
}),
|
|
|
|
|
layoutsResolver(),
|
|
|
|
|
{
|
|
|
|
|
type: 'component',
|
|
|
|
|
resolve: (name) => {
|
|
|
|
|
const [prefix, folder] = kebabCase(name).split('-');
|
|
|
|
|
|
|
|
|
|
// 命名导出组件
|
|
|
|
|
if (prefix === 'eos') {
|
|
|
|
|
return {
|
|
|
|
|
name: name.slice(3),
|
|
|
|
|
from: getPath(`${getSep('src')}/components`, { folder }),
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
// 默认导出组件
|
|
|
|
|
if (prefix === 'eo') {
|
|
|
|
|
return setResolve(name);
|
|
|
|
|
}
|
|
|
|
|
if (prefix === 'base') {
|
|
|
|
|
return {
|
|
|
|
|
name: name.slice(4),
|
|
|
|
|
from: `${getSep('src')}/components/_base`,
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
directoryAsNamespace: true,
|
|
|
|
|
dts: './config/unplugin/components.d.ts',
|
|
|
|
|
});
|
|
|
|
|
}
|