原文地址:https://webpack.js.org/loaders/url-loader/
webpack版本:2.2.1
將圖片文件轉(zhuǎn)換為base64編碼并載入瀏覽器能夠減少http請(qǐng)求數(shù)尽纽,但是增大了js或html文件的體積损晤,如果圖片在項(xiàng)目中的重用度較高躬拢,那么每處引用都會(huì)生成base64編碼瘦锹,造成了代碼的冗余。通過(guò)http請(qǐng)求載入到瀏覽器的文件可以緩存到本地,當(dāng)圖片在項(xiàng)目中的重用度較高時(shí),會(huì)為圖片的訪問增加緩存的便利性怠苔,下次訪問更快。因此要平衡考慮仪糖。
Install
cnpm install --save-dev url-loader
Usage
url loader與file loader的工作方式相似柑司,但如果文件的體積比byte limit小,就能返回Data Url锅劝。
需要用一個(gè)查詢參數(shù)(query parameter)來(lái)指定limit攒驰。默認(rèn)是無(wú)limit的。
如果文件比limit(以bytes為單位)大故爵,那么webpack就會(huì)使用file-loader去處理文件玻粪,并且所有的查詢參數(shù)都會(huì)傳遞給file-loader。
注意:
- 使用url-loader時(shí)不需要安裝file-loader。
- file-loader中的查詢參數(shù)(query parameter)用在url-loader設(shè)置中同樣有效奶段。
require("url-loader?limit=10000!./file.png");
// => DataUrl if "file.png" is smaller than 10kb
require("url-loader?mimetype=image/png!./file.png");
// => Specify mimetype for the file (Otherwise it's inferred from extension.)
require("url-loader?prefix=img/!./file.png");
// => Parameters for the file-loader are valid too
// They are passed to the file-loader if used.