require.context()联系上下文,可避免重复使用import()
require.context是webpack针对依赖管理提供API,使用它,我们能够创建自己的上下文,它允许你传入一个目录进行搜索,一个标志表示是否应该搜索该目录下的子目录,还有一个正则表达式来匹配文件。
适用场景
前端项目中常常会遇到需要动态获取本地文件内容,比如项目中线上配置菜单,选取本地组件路径;项目多语言开发,筛选比对本地编码等。使用require.context,它会遍历文件夹中的指定文件,然后自动导入。可以避免多次重复使用import导入文件读取
使用规则
语法:
require.context(dir, useSubdirectories = false, regExp = /^.//);
参数解释:
directory {String} -读取文件的路径
useSubdirectories {Boolean} -是否遍历文件的子目录
regExp {RegExp} -匹配文件的正则
示例
如读取test文件夹下a.js文件内容,此处以js文件内容是键值对为例
参考代码
let reqs=require.context('/text',true,/a\.js$/)
req.keys().forEach((key)=>{
console.log(key)//输出属性名
console.log(reqs(key).default)//输出属性值
})