require.context的用法。路由规则的自动化导入
Posted 勇敢*牛牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了require.context的用法。路由规则的自动化导入相关的知识,希望对你有一定的参考价值。
require.context的用法
自动导入routers中的路由模块,webpack中提供一个api方法,可以自动去检索对应目录下的模板。
const module = reuire.context(".router",false,/\\.js$/i)
参数一:检索目录
参数二:是否递归对应的检索目录
参数三:指定最终的文件格式。(正则表达式)
返回值:函数模块
得到一个模块:
console.log(module);
ƒ webpackContext(req)
var id = webpackContextResolve(req);
return __webpack_require__(id);
这个模块的上的方法keys()是:得到这个相对目录下的索引名称。
console.log(module.keys());
通过这个方法得到这个模块函数。
const moduleFn = require.context('./routes',false,/\\.js$/);
遍历这个函数得到的每一个模块路径之后,传入得到默认的导出模块。
const routes = moduleFn.keys().reduce((p,v)=>
let module = moduleFn(v).default;
console.log(module);
if(Array.isArray(module))
p.push(...module);
else
p.push(module);
return p;
,[])
以上是关于require.context的用法。路由规则的自动化导入的主要内容,如果未能解决你的问题,请参考以下文章