32 lines
869 B
JavaScript
32 lines
869 B
JavaScript
//本地仓库外部组件
|
||
|
||
// 存储组件列表
|
||
import directives from "../lib/js/directives";
|
||
|
||
let components = [];
|
||
// 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册
|
||
const install = function (Vue) {
|
||
if (install.installed) return;
|
||
// 遍历注册全局组件
|
||
let contexts = require.context('.', true, /[\\\/]Ai([^\\\/]+)\.vue$/);
|
||
Vue.use(directives)
|
||
if (contexts) {
|
||
contexts.keys().map((e) => {
|
||
components.push(contexts(e).default);
|
||
Vue.component(contexts(e).default.name, contexts(e).default);
|
||
});
|
||
}
|
||
};
|
||
|
||
// 判断是否是直接引入文件
|
||
if (typeof window !== 'undefined' && window.Vue) {
|
||
install(window.Vue);
|
||
}
|
||
|
||
export default {
|
||
// 导出的对象必须具有 install,才能被 Vue.use() 方法安装
|
||
install,
|
||
// 以下组件列表
|
||
...components
|
||
};
|