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)

Hook 到編譯器中以提取進度資訊。handler 必須具有 function(percentage, message) 的簽名。Percentage 以介於 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)

通過使用標註了 // @sourceURLeval 包裝每個模組來修飾模組模板。

WebWorkerTemplatePlugin

webworker.WebWorkerTemplatePlugin(options)

塊由 importScripts 加載。

options 是輸出選項。

FetchCompileAsyncWasmPlugin

此插件用於為 WASM 捆綁提供執行時程式碼,並且通常與子編譯器一起使用。

web.FetchCompileAsyncWasmPlugin()

源碼

影響模組源程式碼的插件。

ProvidePlugin

ProvidePlugin(name, request)

如果 name 在模組中使用,則由 require(<request>) 加載的模組填充。

NodeTargetPlugin

node.NodeTargetPlugin()

如果您在 Node.js 環境中執行捆綁包,則應使用這些插件。

它可以確保即使在捆綁時也能正確加載原生模組。

優化

請注意,只有在將 mode 設定為 'none' 時,才應使用 rspack.optimize 命名空間下的所有插件。否則,您可能會遇到插件應用兩次的問題。

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)