我知道的webpack前端打包工具(二)
上一篇webpack文章講述的是entry、output、plugin三大概念的概念與功能,今天主要是對loaders這一核心的解說。loaders的作用在於各種格式的檔案進行轉換,例如es6轉碼,sass/less的解析,圖片資源轉換成base64用於減少http請求等等。
(一)babel-loader
在專案中,根據官網http://babeljs.io/docs/setup/#installation提供的安裝命令進行babel依賴包的安裝。
接著,在webpack.config.js裡進行相應的配置。
test是對js檔案進行匹配,loader則將進行檔案轉換。同時,也需要進行presets配置,實現es2015/es2016/es2017的轉換,令瀏覽器可識別。
之後,進行babel-preset-env外掛的安裝。
使用命令npm run webpack進行執行編譯打包
此時顯示的是打包成功終端程式碼。然而,命令終端中顯示的打包時間為6s,打包時間過長造成效能問題,因此需要通過在loaders裡面配置exclude以及include。路徑的配置為絕對路徑。打包時間也大大減少。
(二)css的相關配置
為了webpack對css的解析,需要下載依賴包,css-loader、style-loader。
同時,需要在loaders裡對css進行配置
postcss-loader以及autoprefixer兩個外掛,是為了實現自動新增css3字首的功能,而importLoaders為了實現css中引用模組import時匹配的。
另外,也可以對sass與less等擴充套件語言進行配置。
安裝的命令:
webpack.config.js的loaders配置
(三)模板檔案
首先,安裝解析的依賴包html-loader,
接著,在loaders裡進行配置
(四)圖片資原始檔
有兩種外掛可以實現webpack對圖片資源的處理。file-loader與url-loader。
使用file-loader,執行命令
同時,需要配置loaders,
query的配置則是對打包後的圖片進行名稱修改。進行webpack打包後,此時圖片資源已打包完成。
另外,關於url-loader的配置。首先,先安裝url-loader,
之後同時需要進行loader的配置。
執行webpack命令之後,打包成功發現沒有打包的圖片名以及js檔案變大,則按照了base64編碼將圖片進行展示。
而http請求的方式與base64的方式有優勢與劣勢,http雖然會新增不必要的請求,但同時也能將請求的路徑進行快取;而base64雖然能減少服務請求,但同時也增大了js的檔案體積,增加了不必要的臃餘。
另一方面,無論哪種方式,對於圖片的體積都是可以進行壓縮的,需要的外掛是image-webpack-loader。
打包成功後,檢視打包圖片後的體積,體積變小了。
總結:這篇webpack文章講的是對loaders的應用,分別對es6、sass、less、html、image等檔案的解析轉換。
更多文章請關注公眾號