require.context是webpack的一个api,用于实现前端工程自动化
用于自动引入指定文件夹里的指定文件
require.context接收3个参数:require.context('./test', false, /.test.js$/)
第一个参数是文件的路径
第二个参数为是否读取文件夹的子目录
第三个参数是匹配文件的正则
require.context执行后返回一个函数,函数包含以下三个属性
resolve
,keys
,id
resolve
是一个函数,返回已解析请求的模块IDkeys
是一个函数,它返回上下文模块可以处理的所有可能请求的数组(匹配成功模块的名字组成的数组)。id
是上下文模块的模块ID。这可能对有用module.hot.accept
keys用法示例:
const modulesFiles = require.context('./modules', true, /\.js$/)
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
const value = modulesFiles(modulePath)
modules[moduleName] = value.default
return modules
}, {})