webpack中的require.context

require.context

你可以通过 require.context() 函数来创建自己的context。

可以给这个函数传入三个参数:一个要搜索的目录,一个标记表示是否还搜索其子目录, 以及一个匹配文件的正则表达式。

webpack 会在构建中解析代码中的 require.context() 。

语法如下:

require.context(directory, useSubdirectories = false, regExp = /^.//);

示例:

  1. require.context('./test', false, /.test.js$/);    // (创建出)一个 context,其中文件来自 test 目录,request 以 `.test.js` 结尾。
  2. require.context('../', true, /.stories.js$/); // (创建出)一个 context,其中所有文件都来自父文件夹及其所有子级文件夹,request 以 `.stories.js` 结尾。

context module API

一个 context module会导出一个(require)函数,此函数可以接收一个参数:request。

此导出函数有三个属性:resolve, keys, id。

  • resolve 是一个函数,它返回 request 被解析后得到的模块 id。

  • keys 也是一个函数,它返回一个数组,由所有可能被此 context module 处理的请求

const cache = {};

function importAll (r) {
  r.keys().forEach(key => cache[key] = r(key));
}

importAll(require.context('../components/', true, /.js$/));

 

原文地址:https://www.cnblogs.com/xiaoleilei123/p/12881912.html