第五代webpack昨天發(fā)布,距離上一個版本4.0有兩年的時間墩朦,這次的發(fā)版給javascript生態(tài)中最常用的打包模塊帶來了很多變化坯认。如果像我一樣,在webpack興起之前就開始了你的前端生涯介杆,你還記得在工作中使用gulp和grunt的抱怨和沮喪嗎鹃操?
讓我們來看看這個非常受歡迎的庫的新版本帶來的重大變化和改進
這個版本需要關(guān)注5個關(guān)鍵點
快速持久的構(gòu)建
開發(fā)者們抱怨最多的就是關(guān)于webpack的打包速度太慢。這個模塊打包現(xiàn)在提供了一共文件緩存系統(tǒng)春哨,通過打包加速可以提高我們的開發(fā)生產(chǎn)力荆隘。
更小的包體積
改善已經(jīng)做了TreeShaking的代碼(已被稱為廢棄代碼)。同時上一個版本有能力移除沒用的代碼赴背,webpack5更進了一步椰拒。webpack有能力移除代碼里的內(nèi)部模塊,從而減少體積凰荚。更多webpack5的優(yōu)化特性燃观,訪問https://webpack.js.org/blog/2020-10-10-webpack-5-release/#major-changes-optimization
更長的緩存
在打包大小之后,最能改善應(yīng)用加載時間的是緩存便瑟。有緩存后缆毁,訪問者訪問你的應(yīng)用體檢幾乎是瞬間打開的。在webpack 5中到涂,對代碼所做的改變不會改變最小化版本(例如脊框,注釋或變量名)颁督,不會導(dǎo)致緩存失效。意味著你的用戶將能夠體驗長時間的緩存浇雹。
現(xiàn)在進行重大更改沉御,以便以后進行進一步的改進
在此版本有許多改變將不會有任何的顯性影響。換句話來說昭灵,在未來的版本里會允許使用新的特性吠裆。
這些新的特性包括用http(s) 導(dǎo)入 module 擴展。它將幫你開發(fā)微前端烂完。還有更多新的并且讓人興奮的特性试疙,可以訪問https://webpack.js.org/blog/2020-10-10-webpack-5-release/#experiments
另外一個改變是Nodejs版本需要從6到10.13.0,放棄對舊Node.JS版本的支持將允許團隊簡化他們的代碼抠蚣,并刪除支持這些舊版本的解決方案效斑。
webpack5同時也帶來了一個新的 experiments 配置選項支持 WebAssembly, Async Web Assembly柱徙, Top Level Await 并且輸出你的包成一個模塊(之前只有rollup支持)
模塊聯(lián)邦
這是個新的特性,簡單說奇昙,允許多個 webpack 構(gòu)建在一起工作护侮。它允許你的應(yīng)用動態(tài)加載代碼從其它應(yīng)用(webpack打包的)。模塊聯(lián)合最流行的應(yīng)用是啟用微前端架構(gòu)储耐。
如果你感興趣學(xué)習(xí)更多羊初,可以訪問https://webpack.js.org/concepts/module-federation/