moreShopAdmin/src/install/index.ts

28 lines
836 B
TypeScript

import type { App } from 'vue'
const modules = import.meta.glob('./**/*', { eager: true })
// 安装方法,执行某一类相同操作
function install(app: App<Element>) {
Object.keys(modules).forEach((key) => {
const name = key.replace(/(.*\/)*([^.]+).*/gi, '$2')
const type = key.replace(/^\.\/([\w-]+).*/gi, '$1')
const module: any = modules[key]
if (module.default) {
switch (type) {
// 用于注册全局指令
case 'directives':
app.directive(name, module.default)
break
// 使用插件
case 'plugins':
typeof module.default === 'function' && module.default(app)
break
}
}
})
}
export default {
install
}