autoComponents.js 714 B

123456789101112131415161718192021222324
  1. import Vue from 'vue'
  2. const requireComponent = require.context(
  3. './components/AutoComponents', // 组件目录
  4. true, // 是否递归子目录
  5. /\/[^/]+\/index\.vue$/ // 匹配文件夹下的 index.vue 文件
  6. )
  7. requireComponent.keys().forEach(filePath => {
  8. // 获取组件配置
  9. const componentConfig = requireComponent(filePath)
  10. // 获取文件夹名称作为组件名
  11. const folderName = filePath
  12. .split('/') // 将路径按 '/' 分割
  13. .filter(part => part !== '.') // 过滤掉 '.' 部分
  14. .shift() // 取第一个部分(即文件夹名)
  15. // 全局注册组件
  16. Vue.component(
  17. folderName, // 组件名称
  18. componentConfig.default || componentConfig // 组件内容
  19. )
  20. })