Files
lingji-work-fe/config/unplugin/component.ts

49 lines
1.2 KiB
TypeScript
Raw Normal View History

2025-06-16 14:42:26 +08:00
/**
*
* */
import { kebabCase } from 'unplugin-vue-components';
import Components from 'unplugin-vue-components/vite';
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: [
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',
});
}