tableSlot.js 902 Bytes
import Vue from 'vue'
import upperFirst from 'lodash/upperFirst'
import camelCase from 'lodash/camelCase'

function setComponent(requireComponent) {
  requireComponent.keys().forEach(fileName => {
    console.log('----------------->fileName',fileName);
    const componentConfig = requireComponent(fileName)

    const componentName = upperFirst(
      camelCase(fileName.replace(/^\.\//, '').replace(/\.\w+$/, '')),
    )
    console.log('----------------->componentName',componentName);
    const name = `${componentName}`
    Vue.component(name, componentConfig.default || componentConfig)
    console.log(name)
  })
}


// 第一个参数表示检索的目录
// 第二个参数表示是否检索子文件夹
// 第三个参数匹配文件的正则表达式,一般是文件名
const requireComponent = require.context(
  '@/components/tableSlot',true, /\.vue$/,
)

setComponent(requireComponent)