我無法從 webpack 的網站或它們的包依賴項中弄清楚 webpack 是如何在本地檔案系統上實際讀取和寫入檔案的。
我還想撰寫一些自動化腳本來處理一些源代碼檔案,并且可以借鑒 webpack 的作業原理。
他們是否已經在庫中打包了一些二進制檔案?那么它是如何跨平臺運行的呢?它在節點上運行嗎?請賜教!
uj5u.com熱心網友回復:
它在節點上運行嗎?
是的,它是一個 Node.js 庫/包。
Webpack 是如何在本地檔案系統上實際讀寫檔案的?
它利用本機fs模塊來讀取和寫入檔案。為了在模式期間持續觀察檔案的變化dev,它使用了watchpack。此外,如果您使用的是Webpack Dev Server,那么它不會將輸出檔案寫入檔案系統。它將它們保存在記憶體中,并使用connect類似的中間件從記憶體中提供檔案。
...處理一些源代碼檔案
Webpack 使用acorn庫來決議 JavaScript AST 以理解 JS 語法。
我還想寫一些自動化腳本...
如果你打算處理一些源代碼檔案,你有兩個選項——loaders 和 plugins。加載器在單個檔案級別作業并通過加載器管道。把它想象成一個代碼轉換器,其中一種語言的檔案被轉換成另一種或類似的語言(例如 typescript 到 JS)。加載器是無狀態的,實作起來相對簡單。例如,sass-loader將 SCSS 轉換為 CSS,然后將其傳遞css-loader以決議所有@import陳述句。
另一方面,插件更高級但實作起來很復雜。插件在整個編譯程序級別上作業,并通過利用編譯器掛鉤/事件來實作這一點。因此,當您需要隨時處理多個檔案時,插件可能是要走的路。例如,CSS 提取插件需要將 CSS 從多個檔案中提取到一個檔案中。您將需要插件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/484703.html
標籤:网页包
