本節內容源自以下連結的內容,並受 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)
Hook 到編譯器中以提取進度資訊。handler
必須具有 function(percentage, message)
的簽名。Percentage 以介於 0 和 1 之間的值調用,其中 0 表示開始,1 表示結束。
將入口塊新增到編譯中的插件。
EntryPlugin(context, entry, options)
在編譯時新增一個入口塊。該塊命名為 options.name
,且僅包含一個模組(加上依賴項)。該模組從 context
(絕對路徑)中的 entry
解析。
context
:模組解析的基本路徑,將在此路徑下進行入口模組解析。entry
:指定要用作入口點的模組路徑。options
:入口模組的其他配置。DynamicEntryPlugin(context, entry)
類似於 EntryPlugin
,但接受一個函數作為 entry
引數。此函數在建置過程中的每個 make
事件期間調用,以支援動態確定入口點。
EntryOptionPlugin()
EvalDevToolModulePlugin(options)
通過使用標註了 // @sourceURL
的 eval
包裝每個模組來修飾模組模板。
webworker.WebWorkerTemplatePlugin(options)
塊由 importScripts
加載。
options
是輸出選項。
此插件用於為 WASM 捆綁提供執行時程式碼,並且通常與子編譯器一起使用。
web.FetchCompileAsyncWasmPlugin()
影響模組源程式碼的插件。
ProvidePlugin(name, request)
如果 name
在模組中使用,則由 require(<request>)
加載的模組填充。
node.NodeTargetPlugin()
如果您在 Node.js 環境中執行捆綁包,則應使用這些插件。
它可以確保即使在捆綁時也能正確加載原生模組。
請注意,只有在將 mode
設定為 'none'
時,才應使用 rspack.optimize
命名空間下的所有插件。否則,您可能會遇到插件應用兩次的問題。
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)