31 lines
843 B
JavaScript
31 lines
843 B
JavaScript
|
|
const apps = []
|
|||
|
|
const install = function (Vue) {
|
|||
|
|
if (install.installed) return Promise.resolve()
|
|||
|
|
else {
|
|||
|
|
let contexts = require.context('.', true, /(\/.+)\/Ai[^\/]+\.vue$/)
|
|||
|
|
if (contexts) {
|
|||
|
|
contexts.keys().map(e => {
|
|||
|
|
if (contexts(e).default) {
|
|||
|
|
let mod = apps.find(a => a.name == contexts(e).default.name)
|
|||
|
|
if (mod) {
|
|||
|
|
mod.component = contexts(e).default
|
|||
|
|
} else {
|
|||
|
|
apps.push({name: contexts(e).default.name, component: contexts(e).default})
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
apps.map(e => {
|
|||
|
|
Vue.component(e.name, e.component)
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
// 判断是否是直接引入文件
|
|||
|
|
if (typeof window !== 'undefined' && window.Vue) {
|
|||
|
|
install(window.Vue)
|
|||
|
|
}
|
|||
|
|
export default {
|
|||
|
|
// 导出的对象必须具有 install,才能被 Vue.use() 方法安装
|
|||
|
|
install
|
|||
|
|
}
|