本节内容派生于以下链接指向的内容 ,并遵守 CC BY 4.0 许可证的规定。
以下内容如果没有特殊声明,可以认为都是基于原内容的修改和删减后的结果。
context 是指带有表达式的 require 或动态 import(),例如 require('./locale/' + name + '.json')
遇到这种表达式时,Rspack 会推断出目录('./locale/')和一个正则表达式(/^.*.json$/)。
由于在编译时无法确定 name,Rspack 会将每个文件都作为模块打包。
ContextReplacementPlugin 允许你覆盖这些推断的信息。该插件可以通过多种方式进行配置:
如果目录匹配 resourceRegExp,插件会用 newContentResource、newContentRecursive 或 newContextRegExp 分别替换默认资源、递归标志或生成的正则表达式。
如果 newContentResource 是相对路径,则相对于前一个资源进行解析。
这个示例限制了 moment/locale 目录下的文件,仅打包匹配 /de|fr|hu/ 的文件。因此,仅包含这些语言模块(在这里了解更多信息)。
关于 newContentResource 和 newContentCreateContextMap 参数:
这两个参数可以一起使用,以更有针对性地重定向请求。newContentCreateContextMap 允许你以对象的形式映射运行时请求到编译时请求: