123456789101112131415161718192021222324 |
- import { App, Component } from 'vue'
- interface FileType {
- [key: string]: Component
- }
- // @ts-ignore
- const Components: Record<string, FileType> = import.meta.glob(
- '/src/components/**/*.vue',
- { eager: true },
- )
- export default (app: App): void => {
- // 因为通过 import.meta.globEager 返回的列表不能迭代所以直接使用 Object.keys 拿到 key 遍历
- Object.keys(Components).forEach((c: string) => {
- // const component = files[c]?.default
- const component = Components[c] ? Components[c].default : null
- // 组件内有注册过name才可自动挂载
- if (component && component.name) {
- // 挂载全局控件
- app.component(component.name as string, component)
- }
- })
- }
|