require.context
是一个webpack的api,执行这个函数获取一个特定的上下文,主要用来实现自动化导入模块,在前端工程中,如果遇到从一个文件夹引入很多模块的情况,可以使用这个api,它会遍历文件夹中的指定文件,然后自动导入,使得不需要每次显式的调用import导入模块(------ 简书 - 心_c2a2 - “使用require.context实现前端工程自动化”)
语法:require.context(directory,bool,regExp)
require.context() 接收
三个参数
- directory < string > ------ 读取文件的路径
- bool < boolean > ------ 是否遍历文件的子目录,默认false
- regExp < RegExp > ----- 匹配文件的正则
require.context() 返回
一个函数,返回函数有3个属性
4. resolve < Function > ----- 接收一个参数request,request为读取文件路径下匹配文件的相对路径,返回这个匹配文件相对于整个工程的相对路径
5. key < Function > ----- 函数返回匹配成功模块的名字组成的数组
6. id < string > ----- 执行环境的id,主要用在module.hot.accept
const files = require.context('.', false, /\.js$/)
const modules = {}
files.keys().forEach(key => {
if (key === './index.js') return
//读取文件中的default模块
modules[key.replace(/(\.\/|\.js)/g, '')] = files(key).default
})
//导出对象
export default modules