/** * @name AutoRegistryComponents * @description 按需加载,自动引入组件 */ import type { RsbuildPlugin } from '@rsbuild/core' import IconsResolver from 'unplugin-icons/resolver' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' import Components from 'unplugin-vue-components/rspack' const plugin = () => Components({ dts: 'types/components.d.ts', types: [ { from: 'vue-router', names: ['RouterLink', 'RouterView'], }, ], resolvers: [ElementPlusResolver(), IconsResolver({ prefix: 'Icon' })], globs: [ 'src/components/common/*/*.{vue,tsx}', 'src/components/business/*/*.{vue,tsx}', ], // 确保扫描 .vue 和 .tsx 文件 extensions: ['vue', 'tsx'], deep: false, directoryAsNamespace: false, globalNamespaces: [], directives: true, }) export default (): RsbuildPlugin => ({ name: 'rsbuild:unplugin-vue-components', setup(api) { api.modifyRspackConfig((config) => { config.plugins.push(plugin()) }) }, })