一、優化開發體驗node
二、優化輸出質量webpack
一、縮小文件搜索範圍
webpack 在啓動後會從配置的 Entry 出發,解析出文件中的導入語句,再遞歸解析,在遇到導入語句時,webpack 會作一下操做web
1.1 優化 Loader配置
可經過 test, include,exclude 三個配置進行優化緩存
關於 babel-loader cacheDirectory 的配置,可參考
https://webpack.docschina.org...babel
1.2 優化 resolve.modules 配置
webpack 在啓動後會從配置的入口模塊出發找出全部依賴的模塊,resolve 配置 webpack 如何尋找模塊對應的文件。resolve.modules 的默認值是 ['node_modules'], 指先去當前目錄的./node_modules 目錄下找對應的模塊,若是沒有找到,就去上一級目錄../node_modules, 層層往上找。通常咱們安裝的第三方目錄都會放在項目的根目錄 ./node_modules 目錄下,能夠指明第三方模塊的絕對路徑,減小查找路徑多線程
二、使用CommonsChunkPlugin分割代碼
對於多入口,將公共模塊拆出來,最終合成的文件可以在最開始的時候加載一次,便存起來到緩存中供後續使用,不須要每次訪問一個新頁面時,再去加載一個更大的文件併發
三、使用動態連接庫文件
將網頁依賴的基礎模塊抽離出來,打包到一個單獨的動態連接庫中,一個動態連接庫能夠包含多個模塊;
當須要導入的模塊存在於某個動態連接庫時,這個模塊不會被再次打包,而是去動態連接庫中獲取app
構建動態連接庫性能
引用動態連接庫優化
四、使用Happypack因爲 JavaScript 是單線程模型,要想發揮多核 CPU 的能力,只能經過多進程去實現,而沒法經過多線程實現。HappyPack 能讓 Webpack 同時間作多件事,它把任務分解給多個子進程去併發的執行,子進程處理完後再把結果發送給主進程。