多入口多出口css
重要的幾個概念:入口,loader,plugin,輸出前端
loader 的匹配規則中有兩個最關鍵的因素:一個是匹配條件(test,include,exclude,and,or,not),一個是匹配規則後的應用(loader名字)。 use 來指定須要用到的 loader 對於一些不須要解析依賴(即無依賴) 的第三方大型類庫等,能夠經過這個字段來配置,以提升總體的構建速度。 module.noParse
noParse: /jquery|lodash/
node
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/)
before 在 webpack-dev-server 靜態資源中間件處理以前,能夠用於攔截部分請求返回特定內容,或者實現簡單的數據 mockjquery
after 在 webpack-dev-server 靜態資源中間件處理以後,比較少用到,能夠用於打印日誌或者作一些額外處理。webpack
中間件就是在 Express 之類的 Web 框架中實現各類各樣功能(如靜態文件訪問)的這一部分函數。多箇中間件能夠一塊兒協同構建起一個完整的 Web 服務器。git
webpack-dev-middleware(express提供的webpack-dev-server靜態服務能力的中間件)github
webpack-dev-middleware 的好處是能夠在既有的 Express 代碼基礎上快速添加 webpack-dev-server 的功能,同時利用 Express 來根據須要添加更多的功能,如 mock 服務、代理 API 請求等。web
首先咱們要明白,對於 webpack 的配置,實際上是對外暴露一個 JS 對象,因此對於這個對象,咱們均可以用 JS 代碼來修改它express
HMR 能夠理解爲加強版的 Hot Reloading,但不用整個頁面刷新,而是局部替換掉部分模塊代碼而且使其生效,能夠看到代碼變動後的效果json
webpack 內部運行時,會維護一份用於管理構建代碼時各個模塊之間交互的表數據,webpack 官方稱之爲 Manifest,其中包括入口代碼文件和構建出來的 bundle 文件的對應關係
目前weback4.x中只須要將hot:true就能夠了,不須要手動引入HotModuleReplacementPlugin
減小 resolve 的解析
特別是由於 Babel 會將代碼轉爲字符串生成 AST,而後對 AST 繼續進行轉變最後再生成新的代碼,項目越大,轉換代碼越多,效率就越低
換種方式處理圖片: 咱們能夠直接使用 imagemin 來作圖片壓縮,編寫簡單的命令便可。而後使用 pre-commit 這個類庫來配置對應的命令,使其在 git commit 的時候觸發,而且將要提交的文件替換爲壓縮後的文件。不用每次運行打包項目都壓縮圖片
使用 DLLPlugin打包公共代碼,將公共代碼抽離成單獨文件的優化方案(css)
optimization.concatenateModules:true 分析出模塊之間的依賴關係,儘量的把打包出來的模塊合併到一個函數中去
webpack 整個構建流程