本节内容源于以下链接的内容,并受 CC BY 4.0 许可证的约束。
除非另有说明,以下内容可被认为是基于原始内容进行修改和删除的结果。
这是一份 Rspack 内部使用的插件列表,与 Webpack 内部使用的插件一致。
只有在您正在基于 Rspack 构建自己的编译器或用于内部检查时,您才应该关心这些插件。
内部插件类别
影响编译器环境的插件。
electron.ElectronTargetPlugin(context)
自定义 Electron 应用程序中不同上下文(如主进程、预加载脚本和渲染器进程)的外部依赖处理。
externalsPresets.electron
、externalsPresets.electronMain
、externalsPresets.electronRenderer
和 externalsPresets.electronPreload
都依赖于此插件。
node.NodeEnvironmentPlugin()
将 Node.js 风格的文件系统应用于编译器。
影响编译器的插件。
ProgressPlugin(handler)
挂钩到编译器以提取进度信息。handler
必须具有签名 function(percentage, message)
。百分比使用 0 到 1 之间的值调用,其中 0 表示开始,1 表示结束。
在编译时向编译添加入口块的插件。
EntryPlugin(context, entry, options)
在编译时添加一个入口块。块名为 options.name
并且只包含一个模块(加上依赖项)。该模块从 context
(绝对路径) 中的 entry
解析。
context
: 模块解析的基路径,入口模块解析将在该路径下进行。entry
: 指定用作入口点的模块路径。options
: 入口模块的附加配置。DynamicEntryPlugin(context, entry)
类似于 EntryPlugin
,但接受一个函数作为 entry
参数。此函数在构建过程中的每个 make
事件期间被调用,以支持动态确定入口点。
EntryOptionPlugin()
EvalDevToolModulePlugin(options)
通过用带注释的 eval
包装每个模块来装饰模块模板 // @sourceURL
.
webworker.WebWorkerTemplatePlugin(options)
块通过 importScripts
加载。
options
是输出选项。
此插件用于为 WASM 捆绑提供运行时代码,通常与子编译器一起使用。
web.FetchCompileAsyncWasmPlugin()
影响模块源代码的插件。
ProvidePlugin(name, request)
如果 name
在模块中使用,它将由 require(<request>)
加载的模块填充。
node.NodeTargetPlugin()
如果在 Node.js 环境中运行捆绑包,则应使用这些插件。
它确保即使捆绑了,本机模块也能正确加载。
请注意,rspack.optimize
命名空间下的所有插件仅在 mode
设置为 'none'
时使用。否则,您可能会遇到插件被应用两次的问题。
optimize.LimitChunkCountPlugin(options)
合并块,限制块计数低于 options.maxChunks
。
每个块的开销由 options.chunkOverhead
提供,或默认为 10000。入口块大小乘以 options.entryChunkMultiplicator
(或 10)。
最能减少总大小的块首先合并。如果多个组合相等,则合并后的最小大小获胜。
LoaderOptionsPlugin(options)
LoaderTargetPlugin(target)
与模块联邦一起使用的内部插件,是 ModuleFederationPlugin
的基础。
container.ContainerPlugin(options)
container.ContainerReferencePlugin(options)
sharing.ConsumeSharedPlugin(options)
sharing.ProvideSharedPlugin(options)
sharing.SharePlugin(options)