You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.1 KiB
40 lines
1.1 KiB
import Vue from 'vue'
|
|
|
|
// 加入公共组件
|
|
const requireComponent = require.context(
|
|
// 其组件目录的相对路径
|
|
'./',
|
|
// 是否查询其子目录
|
|
false,
|
|
// 匹配基础组件文件名的正则表达式
|
|
/[A-Z]\w+\.(vue|js)$/
|
|
)
|
|
|
|
// console.log(requireComponent);
|
|
|
|
requireComponent.keys().forEach(fileName => {
|
|
|
|
// 获取组件配置 - vm实例
|
|
const componentConfig = requireComponent(fileName)
|
|
// console.log(fileName); // ./GetCode.vue
|
|
|
|
// 获取组件的PascalCase命名
|
|
const componentName = _.upperFirst(
|
|
_.camelCase(
|
|
// 获取和目录深度无关的文件名
|
|
fileName
|
|
.split('/')
|
|
.pop()
|
|
.replace(/\.\w+$/, '')
|
|
)
|
|
)
|
|
// console.log(componentName); // VButton
|
|
// 全局注册组件
|
|
Vue.component(
|
|
componentName,
|
|
// 如果这个组件选项是通过 `export default` 导出的,
|
|
// 那么就会优先使用 `.default`,
|
|
// 否则回退到使用模块的根。
|
|
componentConfig.default || componentConfig
|
|
)
|
|
})
|