webpack之旅 深入理解Plugin

2021-10-02 02:46:00 字數 1114 閱讀 1001

上次我們深入介紹了loader的相關的內容,今天我將帶大家深入看看plugin外掛程式的內容:

在檔案中建立乙個js類:

class

}

class

(compiler))}

}

**注: 這裡我們使用了乙個tap()方法,他表示的是使用的是同步執行的鉤子,而我們需要在plugin中執行非同步的操作時,可以使用的就是tapasync()方法。tap()方法的引數compilation表示的是此次打包的物件。

4. plugin中執行非同步的操作:我們上面說到的comilation引數是為webpack打包的乙個物件,此次打包的一些內容我們可以在compilation.assets中獲取到,當然我們需要往打包的檔案中加入一些內容我們也可以直接往compilation.assets中去加入內容即可, 當我們使用tapasync()這個非同步的鉤子執行非同步操作時,tapasync()比tap()函式多乙個callback引數,該引數是乙個函式,並且我們需要在非同步的操作執行結束後手動的呼叫一下這個函式,它用於告知webpack非同步的操做什麼時候執行結束。

class

(compiler))}

const self =

this

compiler.hooks.emit.

tapasync(,

(compilation)

=>`,

size:

function()

}}})

}

**注:我們在這裡使用compilation.assets對bundle.js文間進行處理,此時我們它賦值了乙個物件,source引數表示我們將要寫入到檔案中的內容,size屬性表示的是寫入檔案的大小

好了,到這裡我們基本的關於plugin的底層的大致東西就給大家說了乙個大概,當然plugin的實現還有很多的內容,像compiler引數,compilation引數上也還有很多的屬性方法,這些就需要大家去官方文件上看看了,但是它具體是怎麼處理webpack打包檔案的我想流程大家應該還是有個概念了吧。最後這裡我還是為大家附上乙個官網關於plugin api的位址,大家可以去產看哦~~~~

plugin api官網位址

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

mysql 索引深入理解 深入理解MySql的索引

為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...