// 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册 /** * * @param Vue 外部接入Vue * @param params showList:打印加载的应用;apps:加载的应用文件名数组 */ import core from './core.import' import dvui from '../project/dvui/entries' const install = function (Vue, params) { if (install.installed) return // 遍历注册全局组件 let apps = [] let contexts = import.meta.glob('./**/App*.vue') if (contexts) { Object.keys(contexts).map(path => { if (/App[A-Z]\w+\.vue/.test(path)) { return contexts?.[path]()?.then(file => { apps.push(file.default) return Vue.component(file.default.name, file.default) }) } }) } core?.map(app => { apps.push(app.component) Vue.component(app.name, app.component) }) Vue.use(dvui) return Promise.resolve(apps) } // 判断是否是直接引入文件 if (typeof window !== 'undefined' && window.Vue) { install(window.Vue) } export default { // 导出的对象必须具有 install,才能被 Vue.use() 方法安装 install }