vue2中自动注册全局组件

238 阅读1分钟
require.context参数介绍
require.context(directory,useSubdirectories,regExp)
    -  directory:表示检索的目录
    -  useSubdirectories:表示是否检索子文件夹
    -  regExp:匹配文件的正则表达式,一般是文件名

正则获取文件名:./componentA.vue -> componentA
filename.replace(/\.\/(.*)\.vue/, '$1')

const requireComp = require.context('@/components', true, /.vue/)
requireComp.keys().forEach(filename => {
    //组件
    const comp = requireComp(filename)
    // 组件名: 先去name,没有则取文件名;
    const compName = comp.name || filename.replace(/\.\/(.*)\.vue/, '$1')
    // 注册
    Vue.component(compName, comp.default || comp)
})