Webpack 代碼是否在 switch 陳述句中拆分未使用的代碼?
我有一個帶有 switch 陳述句的 Icon 組件來選擇選定的圖示。這是代碼的簡化版本,實際上它將是一個相當大的檔案:
switch (name) {
case 'tick':
return (
<svg>
<!-- more SVG code -->
</svg>
);
case 'close':
return (
<svg>
<!-- more SVG code -->
</svg>
);
如果我在具有tick條件的頁面上使用此組件一次,是否close也會加載的代碼?
uj5u.com熱心網友回復:
不。它不會。唯一的代碼清除該的WebPack可以執行就是它可以通過目標樹搖晃。搖樹在模塊級別作業并消除未使用的匯出及其依賴項,前提是模塊沒有副作用。您在這里希望的是在分支級別積極消除。到目前為止,沒有任何東西可以執行這樣的優化。您可以探索閉包編譯器,但我仍然持懷疑態度。
為了設計一個圖示系統,我通常會有一個帶有外部<svg>標簽的圖示組件,在其中我將使用在某些字典(地圖或傳統物件)中定義的圖示片段。這解決了大型開關盒的可讀性問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/316221.html
標籤:网络包
