如果HTTP2普及了,Webpack、Rollup這種打包工具還有意義嗎?

還有瀏覽器原生的JS module支持


In many ways, you can consider that webpack becomes even more powerful with HTTP2!!!! Instead of shipping one large bundle of JavaScript, or (in contrast) 300+ individual modules, you can rather ship many smaller bundles.

webpack 2 released a plugin called AgressiveSplittingPlugin() which allows you to split your Dependency Graph (that webpack creates) into as many bundles as you want, but based on minimum and maximum "bundle size".

Tobias Koppers (aka @sokra), the original creator and other maintainer of webpack published a "research article" with findings that state: "It"s best to still bundle, but instead create much smaller bundles". https://medium.com/webpack/webpack-http-2-7083ec3f3ce6

In this article will also discuss how you use webpack 2"s AgressiveSplittingPlugin(). I hope that you find this useful!


http2的優化是少傳輸(減少頭的payload),傳更快(復用連接,server push等);Rollup等工具的優化是少傳輸(減少內容payload),少解析執行(去除不必要的執行路徑)。

是不同層面的優化。

payload總是越小越好,性能總是越快越好,所以這些優化技術的關係是互相配合,互相補充,而不是互相替代。

http2不能幫你更好地程序設計,這是module的主要意義—— 用來程序設計,好的程序設計工具優化的是開發者的時間,而不是CPU/IO時間。


其實這個問題有兩個因素. 有沒有http2和有沒有es module.

http2可以提升你的並行載入能力, 可以取代的是concat這種打包系統.

es module是原生的模塊載入系統, 可以取代的是requireJs/amd這些模塊載入系統.

一般打包系統其實抽象層更高, 做得事更多. 最簡單的是browserify, 基本做了上述兩件事. 所以這兩個東西普及了browserify可能就沒用了.

至於webpack和rollup主要也是做這兩件事. 但是他們還可以增加更多的構建工具, 比如dead code elimination(uglify和tree shaking), transpiling(babel)等等許多許多非常強大的功能. 特別是loader可以讓你把css和圖片等等其他web資源也管理起來, 比如css module和小圖轉base64 inline等等. 所以這些功能還是很難取代的.

所以你看webpack這種功能類似gulp + browserify的不會被取代. 但是browserify自己倒是有可能.

所以以前只用browserify的這些輕量級場景可以像n年前一樣直接寫代碼了. 很嗨皮. 但是這倆普及怎麼也得七八年以後了吧...


首先先問為什麼,再問是不是~

很明顯, HTTP2.0 只是給你一個多路復用的選擇,並沒有說只讓你用多路復用。webpack rollup 都是選擇。孰好孰壞,只能取決於你的業務,而不是技術。

詳情,可以參考一下 HTTP2即未來 | villianHR


為什麼有些人會有一種http2出現就game change的奇怪觀點。

其實如果認真了解過http2有啥特點的話就知道,並不會change啥……


存在就是道理,消失了就被淘汰了


跟我的想法差不多,雖然不至於消亡,但肯定不會這麼火。也許到時候gulp這種任務型工具會比較流行

因為打包這種需求一直會存在,比如類庫,框架,就應該打成一個文件

不過這都是以後以後的事了


當然有意義,因為他們提供的不止是打包一個bundle的功能啊,況且也可以不打包成一個bundle.js……


奇葩問題... http2 普及跟 webpack 和 rollup 沒有的任何關係。

現在 CPU 和內存都不值錢了,C 這種語言還有必要存在嗎?當然有必要。

webpack 和 rollup 等工具的出現不是因為 http1 有什麼大缺陷,更不是為了彌補它。

提問前請先搞清楚邏輯關係啊。(不懂裝懂的提問真的覺得莫名其妙


推薦閱讀:

TAG:Web開發 | 前端開發 | JavaScript | webpack |