你可以使用 require.context() 函数创建自己的上下文。
好的,什么是 "context"?这个函数实际上是做什么的?
它允许你传入一个要搜索的目录,一个指示是否应该搜索子目录的标志以及用于匹配文件的正则表达式。
让我搜索?我想是搜索文件吧,然后呢?这个函数最终是做什么用的?
你可以使用 require.context() 函数创建自己的上下文。
好的,什么是 "context"?这个函数实际上是做什么的?
它允许你传入一个要搜索的目录,一个指示是否应该搜索子目录的标志以及用于匹配文件的正则表达式。
让我搜索?我想是搜索文件吧,然后呢?这个函数最终是做什么用的?
require()
、require.context()
、import
和import()
表达式,构建所有模块依赖关系图。index.js
入口模块; 请求require.resolve('../../../foo.js')
的上下文是__dirname
。
require.context
是webpack编译器支持的一个特殊功能,允许您从某个基础目录开始获取所有匹配的模块。其意图是告诉webpack在编译时将该表达式转换为动态列表,其中包含它能够解析的所有可能匹配的模块请求,进而将它们添加为构建依赖项,并允许您在运行时请求它们。参考链接:require.context。简而言之,在Node.js运行时需要使用通配符动态构建模块路径列表以进行要求的确切情况下,您将使用require.context
。返回值是可调用对象,类似于require,其键包含必要的模块请求数据,可以将其作为参数传递给需要模块的函数。some.test.js
测试模块,并在某个模块中使用require.context
动态发现所有测试,从而不必手动记录和记住每次添加新测试模块时要这样做)或者加载存储库中的静态资产以将文件发送到生成输出(来自其他构建工具的新webpack用户通常会感到惊讶,除非它们从某个模块中请求,否则它们的图像、字体、音频文件和其他资产不会出现在输出中)。require.context
返回的内容有疑问。在我的工作中,我遇到了以下代码:const srcContext = require.context('../src', true, /.test.jsx?$/);
srcContext.keys().forEach(srcContext);
这段代码具体是在做什么? - Armando Júnior