index.js 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. const requireComponent = require.context('.', true, /.\/(\w*\/)+index\.(jsx?|vue)$/)
  2. const requireCommonComponent = require.context('@Dashboard/extends', true, /.\/(\w*\/)+index\.(jsx?|vue)$/)
  3. const keys = requireComponent.keys().filter(item => {
  4. const arr = item.split('/')
  5. return /index\.(jsx?|vue)$/.test(arr[2])
  6. })
  7. const commonKeys = requireCommonComponent.keys().filter(item => {
  8. const arr = item.split('/')
  9. return /index\.(jsx?|vue)$/.test(arr[2])
  10. })
  11. const extendsComponents = {}
  12. commonKeys.forEach(fileName => {
  13. // 获取组件配置
  14. if (!keys.includes(fileName)) {
  15. const componentConfig = requireCommonComponent(fileName)
  16. const componentName = componentConfig.default.name
  17. extendsComponents[componentName] = componentConfig.default || componentConfig
  18. }
  19. })
  20. keys.forEach(fileName => {
  21. // 获取组件配置
  22. const componentConfig = requireComponent(fileName)
  23. const componentName = componentConfig.default.name
  24. extendsComponents[componentName] = componentConfig.default || componentConfig
  25. })
  26. export default extendsComponents