webpack中require.context控制模块引入

webpack官网介绍

require.context(directory:String, includeSubdirs:Boolean /* 可选的,默认值是 true */, filter:RegExp /* 可选的 */)

得到的是一个函数实例:

ƒ webpackContext(req) {
    var id = webpackContextResolve(req);
    return __webpack_require__(id);
}

ƒ webpackContext(req)
keys: ƒ webpackContextKeys()
resolve: ƒ webpackContextResolve(req)
id: "./src/project sync recursive routers.js$"

具体这个应该叫做什么我也不太清楚。

它有keys和resolve两个方法,keys方法执行后返回的是所有匹配的文件的相对路径(相对于传入require.context方法的第一个参数的路径)。取一个key作为参数执行那个函数实例,即可得到对应模块文件导出的东西。

示例:

const routerList = require.context('../project/', true, /routers.js$/);
console.log(routerList);
console.log(routerList.keys());
routerList.keys().forEach(k => {
  console.log(routerList(k));
});

所输出内容为:


执行结果

至于它的resolve方法,暂时不知道是干嘛用的。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容