index.js 787 Bytes
let components = {};

const componentsFiles = require.context('./', true, /\.vue/);
componentsFiles.keys().forEach(path => {
  const component = componentsFiles(path);
  components[component.default.name] = component.default;
});

// 给组件库配置install方法
const install = function (Vue, opts = {}) {
  Object.values(components).forEach(component => {
    // 组件前缀
    const prefix = opts.name || 'zui';
    // 配置组件名称
    const name = prefix + component.name;
    component.name = name;
    // 给每个子组件配置install方法
    component.install = function (Vue) {
      Vue.component(name, component);
    };
    // 将每个子组件注册为全局组件
    Vue.component(name, component);
  });
};

export default {
  install,
  ...components,
};