本节内容派生于以下链接指向的内容 ,并遵守 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
允许你以对象的形式映射运行时请求到编译时请求: