先前使用的 url-loader 在處理圖片上,還有些不足的地方,其他沒轉成 base64 圖片就沒處理到優化,沒有處理轉換的圖片就可透過壓縮處理,這樣的流程處理就可讓 images-webpack-loader 處理。


安裝 images-webpack-loader

終端機透過指令來安裝。


設定 images-webpack-loader

images-webpack-loader 加入的內容如下,但需整合與 url-loader 共用,要接續處理。

共用的部份到 test: /\.(jpe?g|png|gif)$/,url-loader 共用,把 image-webpack-loader 接到 url-loader 下面。


image-webpack-loade 執行壓縮圖片的前後差別

讓 image-webpack-loade 先執行處理壓縮圖片後,接著在進行 url-loader 的 base64 轉換圖片,處理後得程式碼如下。

接著到 Scss 檔中設定背景圖片的 url() ,給上不同的 id 對應不同的圖片 ( #box2 裡的 url 是 '~b2.jpg')。

針對 index.html 檔中,再加入使用樣式的對應 id 結構。

執行指令 npm run deploy,在執行完成編譯後的 dist 資料夾,裡面就會出現沒有轉存 base64 的圖片在 images 資料夾中。

比對 src/images 與 dist/images 編譯後的差別,以圖片 a1.jpg 來說原始圖片是 49.4kb 而處理後變成 46.2kb。

另外以 cat2.jgp 來說就也是一樣有進行較多的壓縮處理。