| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- /**
- * @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())
- })
- },
- })
|