ProgressPlugin
提供一種自訂在編譯期間如何報告進度的途徑。
建立 ProgressPlugin
的執行個體並提供一個允許的參數,此外,還有一個靜態方法 createDefaultHandler
可用於自訂預設處理常式。
function
提供一個處理常式函數,當掛勾報告進度時將呼叫該函數。handler
函數引數
percentage
:一個介於 0 到 1 之間的數字,表示編譯完成的百分比message
:目前正在執行的掛勾的簡短說明...args
:零個或多個描述目前進度的其他字串const handler = (percentage, message, ...args) => {
// e.g. Output each progress message directly to the console:
console.info(percentage, message, ...args);
};
new webpack.ProgressPlugin(handler);
object
當提供 object
給 ProgressPlugin
時,支援下列屬性
activeModules
(boolean = false
):顯示活動模組計數和進行中的活動模組訊息。entries
(boolean = true
):在進度訊息中顯示項目計數。handler
(請參閱 提供函式)modules
(boolean = true
):在進度訊息中顯示模組計數。modulesCount
(number = 5000
):開始的最小模組計數。當啟用 modules
屬性時生效。profile
(boolean = false
):指示 ProgressPlugin
為進度步驟收集設定檔資料。dependencies
(boolean = true
):在進度訊息中顯示依賴項計數。dependenciesCount
(number = 10000
):開始的最小依賴項計數。當啟用 dependencies
屬性時生效。percentBy
(string = null: 'entries' | 'dependencies' | 'modules' | null
):指示 ProgressPlugin
如何計算進度百分比。new webpack.ProgressPlugin({
activeModules: false,
entries: true,
handler(percentage, message, ...args) {
// custom logic
},
modules: true,
modulesCount: 5000,
profile: false,
dependencies: true,
dependenciesCount: 10000,
percentBy: null,
});
如果 ProgressPlugin
的預設處理常式不符合您的需求,您可以使用靜態 ProgressPlugin.createDefaultHandler
方法自訂處理常式。
static createDefaultHandler: (
profile: undefined | null | boolean,
logger: WebpackLogger
) => (percentage: number, msg: string, ...args: string[]) => void;
預設情況下,進度百分比是根據已建置模組計數和總模組計數計算的:已建置 / 總計
總模組計數事先未知,且會在建置過程中變更。這可能會導致進度百分比不準確。
為了解決此問題,ProgressPlugin
會快取最後已知的總模組計數,並在下次建置時重複使用此值。第一次建置會預熱快取,但後續建置會使用並更新此值。
對於有多個已設定進入點的專案,我們建議使用
percentBy: 'entries'
設定。因為事先已知道進入點的數量,所以百分比計算會更準確。
下列 Hook 會將進度資訊回報給 ProgressPlugin
。
編譯器
編譯