Webpack3 正式版發布

繼 Node, React, Angular 版本失控之后,Webpack 的版本也坐上了??

在之前的文章里,就提到了因為年前版本回退的原因,我特意推遲了升級 webpack,就怕它又搞什么大新聞。

然而,沒想到還是中了圈套,webpack2 堅挺了還不到半年,就迎來了它的替代者。

就在一周前 webpack3 正式版發布了

這次版本升級的主要原因有以下幾點:

  • webpack 內部實現變化
  • 新增了模塊串聯功能。之前,webpack 會為每個模塊創建各自的閉包,使用串聯功能將模塊連接到一起后,就只需為這真個模塊創建一個單獨的閉包,從而減少不必要的代碼
  • 增加動態加載注釋,即可為動態加載定義 chunk 名

最最最重要的一點是不用修改任何配置就能從 webpack2 升級至 webpack3,這總算讓我上個月的升級沒有白費,至少 98% 的用戶是這樣。

既然,不用改代碼就能升級,又能大幅減小輸出文件大小,那就升一波看看效果。先看一眼升級前的打包結果,

before update

現在,通過 npm 命令默認安裝的已經是 3.0.0 的版本。升級的話,因為是大版本,所以別忘了先改 package.json 里面的依賴版本。

升級之后直接跑命令,順利打包。(謝天謝地,不是那 2%。)

after update

只是多了一個 warning。

DeprecationWarning: Chunk.modules is deprecated. Use Chunk.getNumberOfModules/mapModules/forEachModule/containsModule instead.

這是由一些 webpack plugin 引起的,比如:extract-text-webpack-plugin 等。不過,不用理它。首先,它不影響打包,其次,已經有人提了 pr

結果看上去是不是和之前基本一樣?不要著急,那是因為還沒有用上模塊串聯的功能。開啟模塊串聯的功能需要在配置中簡單的加一個 plugin。

    plugins: [
        // ...
        new webpack.optimize.ModuleConcatenationPlugin()
    ]

再看一眼結果,

build with module concatenation plugin

什么~app.js 只小了 3 kb(5%),廣告果然都是騙人的,不管國內還是國外...??(難道姿勢不對,升級了的朋友都說說小了多少)

這樣 webpack 3 升級就完成了,也用上了新特性,總得來說這次升級在文件大小以及打包時間上還是有所優化的,再加之升級的 effort 幾乎為 0,還是非常值得一試的。

PS:ESlint 也發布了 4.0 版本
(前端界一個個都是版本大佬)

首發于個人博客歡迎訂閱

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容