溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解webpack之圖片引入-增強的file-loader:url-loader

發(fā)布時間:2020-09-29 19:50:33 來源:腳本之家 閱讀:145 作者:hdchangchang 欄目:web開發(fā)

前言:

本文介紹了url-loader(增強的file-loader);

url-loader作用:根據(jù)需求選擇性的把某些小圖片編碼成base64格式寫進頁面;從而減少服務器請求。優(yōu)化性能。

url-loader解決的問題:

如果圖片較多,會發(fā)很多http請求,會降低頁面性能。url-loader會將引入的圖片編碼,生成dataURl。相當于把圖片數(shù)據(jù)翻譯成一串字符。再把這串字符打包到文件中,最終只需要引入這個文件就能訪問圖片了。當然,如果圖片較大,編碼會消耗性能。因此url-loader提供了一個limit參數(shù),小于limit字節(jié)的文件會被轉(zhuǎn)為DataURl,大于limit的還會使用file-loader進行copy。

url-loader和file-loader是什么關系呢?

簡答地說,url-loader封裝了file-loader。url-loader不依賴于file-loader,即使用url-loader時,只需要安裝url-loader即可,不需要安裝file-loader,因為url-loader內(nèi)置了file-loader。

通過上面的介紹,我們可以看到,url-loader工作分兩種情況:

1.文件大小小于limit參數(shù),url-loader將會把文件轉(zhuǎn)為DataURL;

2.文件大小大于limit,url-loader會調(diào)用file-loader進行處理,參數(shù)也會直接傳給file-loader。因此我們只需要安裝url-loader即可。

正文:

代碼和項目目錄用的還是上一篇《webpack之引入圖片》。

url-loader可以看作是增強版的file-loader。

url-loader把圖片編碼成base64格式寫進頁面,從而減少服務器請求。

安裝url-loader

npm i -D url-loader

配置webapck.config.js

詳解webpack之圖片引入-增強的file-loader:url-loader

執(zhí)行 npm run build

在dist目錄下面找到build成功的index.html頁面。在瀏覽器的控制臺中可以看到圖片以base64的格式加載進頁面。

詳解webpack之圖片引入-增強的file-loader:url-loader

現(xiàn)在我們做一些優(yōu)化,如果圖片大小小于50kb則以base64的格式加載,否則以圖片地址方式加載。

詳解webpack之圖片引入-增強的file-loader:url-loader

補充:簡單介紹下url-loader的配置

其實跟file-loader相比差不多,url-loader會按照配置把小于一定大小的圖片以dataUrl的形式儲存。

引用方式與上面相同:loader的配置如下:

{
test: /\.(png|jpg|gif)$/,
loader: 'url-loader?limit=8000&name=img/[name]-[hash:5].[ext]',//小于8kb的圖片以dataurl的方式存儲

} 

補充一個:如何打包html文件中的圖片呢?

首先安裝相應的loader:

$ npm install html-withimg-loader --save-dev1

在webpack.config.js中做相應的配置:

module: {
  loaders: [
    {
      test: /\.html$/,
      loader: 'html-withimg-loader'
    }
  ]
}

最后在入口的js文件中引入html

import '../index.html';

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI