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的用法。路由规则的自动化导入的主要内容,如果未能解决你的问题,请参考以下文章

require.context用法

vue路由分区结合require.context使用

vue使用require.context,动态变量怎么办

关于 require 动态地址引用的问题

在 Vue App 中使用动态目录的 webpack require.context() 的解决方法

【React】antd的form表单的自定义校验规则的用法