首先說明在接觸webPack之前,我絕對是一個requirejs的粉,本着接觸新技術的態度,在項目中用了webPack。
新建了個webpack交流群 感興趣的加一下,互相交流425986482
首先列舉一下比較官方的總結:
特點
- 模塊打包(基本功能)
- 支持CommonJs和AMD(Bowserify,RequireJS,是個亮點)
- 可以混合使用, commonjs 與amd模塊,方案上webpack作用原理更類似於Bowserify,只是增加了異步加載的功能。
- source-map支持(debug調試必須的,requreJs也有)
- 支持模塊按需加載(requirejs)
- 任何用到的資源都可作為模塊被require(js/css/html/markdown/圖片/字體/html…)||(requrieJs)
- 預編譯(stylus/sass/less/coffeescript/jsx/圖片轉base64…)||(requrieJs 也提供sass,less,coffe,jsx的預編譯的插件)
- 優化: 壓縮/文件緩存(自帶根據hash值做文件緩存相比requirejs是個小亮點,requirejs是配置公用參數導致所有文件都會被更新)
- 多點頁面切分公共代碼(官方亮點,通過CommonsChunkPlugin自動提取多個入口JS的公共部分生成common.js)
-
開發模式下支持代碼的熱替換(requireJs不需要,Bowserify與webPack在開發模式下服務器編譯生成bundle.js,通過gulp的watch也可以但是效率太低)
-
單獨打包css,合並入js。
- 支持@import ” “
- 相比於requirejs,在模塊中加載css時,可以配置將css從js中分離出,而不是打進js(個人感覺比較奇怪,不想打進js,為什么要在js中require,破壞了依賴關系)
- 可以選擇作為link還是style dom插入()
- 可以通過調用,移除css(對於開發來說是個亮點,改變了設計組件的方法,實現了將css ,template, js 打成一個包,一起調用一起注銷。)
-
webpack的打包方式完全走本地使用webpack 可以把組件打進npm包,配合阿里的tnpm真的非常方便 。
第二部分:高階升級: