import Vue from "vue";
import { upperFirst, camelCase } from "lodash";

const requireComponent = require.context("./", false, /\w+\.vue$/);

requireComponent.keys().forEach(fileName => {
  // 获取组件配置
  const componentConfig = requireComponent(fileName);

  // 获取组件的 PascalCase 命名
  const componentName = upperFirst(
    camelCase(
      // 获取和目录深度无关的文件名
      fileName
        .split("/")
        .pop()!
        .replace(/\.\w+$/, "")
    )
  );
  // 全局注册组件
  Vue.component(componentName, componentConfig.default || componentConfig);
});
