当APi模块有很多文件的时候,需要一个一个导入,这是我们可以创建一个自动导入的方法,简化代码和工作量;

以下是针对我项目中使用的代码:

 

/*
* @Description: 自动化导入接口文件,使用时请严格按照文件名取用
* @Date: 2020-07-07 17:20:30
* @LastEditTime: 2020-07-23 15:04:47
*/
const importAll = require.context('./', false, /^(?!internals).*\/(?!.*(index|axios)).*\.js$/)
const modules = {}
importAll.keys().map(path => {
const reg = /\.\/(.+?)\./g
const moduleName = reg.exec(path)[1]
// 兼容处理:.default获取ES6规范暴露的内容; 后者获取commonJS规范暴露的内容
const api = importAll(path).default || importAll(path)
Object.keys(api).forEach(key => {
modules[moduleName] = {
...modules[moduleName],
[key]: api[key]
}
})
})
export default modules

  

注明:

1,在正则过滤时,取消了对index和axios文件的选用,只取其他js的文件

2,由于我项目使用接口时用了文件路径做索引,所以以上代码导出结果并不直接是接口函数,中间有一层文件名,导出结果示例如下:

{

  person: {

    getName, getOld

  }

}

person为文件名,./person.js,getName和getOld都是接口方法

3,根据自动化所需要导入的文件,和导出的结果可以相应做其他修改

 

 
 
 
 posted on 2020-07-23 15:14  tammy-yaoyao  阅读(295)  评论(0)    收藏  举报