CC 4.0 许可证

本节内容源于以下链接的内容,并受 CC BY 4.0 许可证的约束。

除非另有说明,以下内容可被认为是基于原始内容进行修改和删除的结果。

内部插件

这是一份 Rspack 内部使用的插件列表,与 Webpack 内部使用的插件一致。

警告

只有在您正在基于 Rspack 构建自己的编译器或用于内部检查时,您才应该关心这些插件。

内部插件类别

环境

影响编译器环境的插件。

ElectronTargetPlugin

electron.ElectronTargetPlugin(context)

自定义 Electron 应用程序中不同上下文(如主进程、预加载脚本和渲染器进程)的外部依赖处理。

externalsPresets.electronexternalsPresets.electronMainexternalsPresets.electronRendererexternalsPresets.electronPreload 都依赖于此插件。

NodeEnvironmentPlugin

node.NodeEnvironmentPlugin()

将 Node.js 风格的文件系统应用于编译器。

编译器

影响编译器的插件。

ProgressPlugin

ProgressPlugin(handler)

挂钩到编译器以提取进度信息。handler 必须具有签名 function(percentage, message)。百分比使用 0 到 1 之间的值调用,其中 0 表示开始,1 表示结束。

入口

在编译时向编译添加入口块的插件。

EntryPlugin

EntryPlugin(context, entry, options)

在编译时添加一个入口块。块名为 options.name 并且只包含一个模块(加上依赖项)。该模块从 context (绝对路径) 中的 entry 解析。

  • context: 模块解析的基路径,入口模块解析将在该路径下进行。
  • entry: 指定用作入口点的模块路径。
  • options: 入口模块的附加配置。

DynamicEntryPlugin

DynamicEntryPlugin(context, entry)

类似于 EntryPlugin,但接受一个函数作为 entry 参数。此函数在构建过程中的每个 make 事件期间被调用,以支持动态确定入口点。

EntryOptionPlugin

EntryOptionPlugin()

输出

EvalDevToolModulePlugin

EvalDevToolModulePlugin(options)

通过用带注释的 eval 包装每个模块来装饰模块模板 // @sourceURL.

WebWorkerTemplatePlugin

webworker.WebWorkerTemplatePlugin(options)

块通过 importScripts 加载。

options 是输出选项。

FetchCompileAsyncWasmPlugin

此插件用于为 WASM 捆绑提供运行时代码,通常与子编译器一起使用。

web.FetchCompileAsyncWasmPlugin()

影响模块源代码的插件。

ProvidePlugin

ProvidePlugin(name, request)

如果 name 在模块中使用,它将由 require(<request>) 加载的模块填充。

NodeTargetPlugin

node.NodeTargetPlugin()

如果在 Node.js 环境中运行捆绑包,则应使用这些插件。

它确保即使捆绑了,本机模块也能正确加载。

优化

请注意,rspack.optimize 命名空间下的所有插件仅在 mode 设置为 'none' 时使用。否则,您可能会遇到插件被应用两次的问题。

LimitChunkCountPlugin

optimize.LimitChunkCountPlugin(options)

合并块,限制块计数低于 options.maxChunks

每个块的开销由 options.chunkOverhead 提供,或默认为 10000。入口块大小乘以 options.entryChunkMultiplicator (或 10)。

最能减少总大小的块首先合并。如果多个组合相等,则合并后的最小大小获胜。

加载器

LoaderOptionsPlugin

LoaderOptionsPlugin(options)

LoaderTargetPlugin

LoaderTargetPlugin(target)

模块联邦

与模块联邦一起使用的内部插件,是 ModuleFederationPlugin 的基础。

ContainerPlugin

container.ContainerPlugin(options)

ContainerReferencePlugin

container.ContainerReferencePlugin(options)

ConsumeSharedPlugin

sharing.ConsumeSharedPlugin(options)

ProvideSharedPlugin

sharing.ProvideSharedPlugin(options)

SharePlugin

sharing.SharePlugin(options)