/** * 自动引入组件 * */ import { kebabCase } from 'unplugin-vue-components'; import Components from 'unplugin-vue-components/vite'; import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'; import { getSep, getPath, setResolve, layoutsResolver } from '../utils'; export function configComponents() { return Components({ dirs: ['src/components'], extensions: ['vue'], resolvers: [ AntDesignVueResolver({ importStyle: false, }), 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', }); }