最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Webpack中用url-loader處理圖片和字體的問(wèn)題

 更新時(shí)間:2020年04月28日 09:12:38   作者:Piconjo_Official  
這篇文章主要介紹了在Webpack中用url-loader處理圖片和字體的問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

Webpack 是一個(gè)前端資源加載/打包工具。它將根據(jù)模塊的依賴關(guān)系進(jìn)行靜態(tài)分析,然后將這些模塊按照指定的規(guī)則生成對(duì)應(yīng)的靜態(tài)資源。

一、處理圖片文件

默認(rèn)webpack無(wú)法處理css文件中的url地址 在打包時(shí)會(huì)報(bào)錯(cuò)
無(wú)論是圖片還是字體庫(kù) 只要是url地址 都無(wú)法處理

在這里插入圖片描述

解決方法:

在項(xiàng)目根目錄下輸入cnpm i url-loader file-loader -D
安裝url-loader和file-loader
(url-loader內(nèi)部依賴于file-loader)

然后在配置文件webpack.config.js中進(jìn)行配置loader

var path=require("path")
var htmlWebpackPlugin=require("html-webpack-plugin")

module.exports={
 entry:path.join(__dirname,"./src/main.js"),
 output:{
 path:path.join(__dirname,"./dist"),
 filename:"bundle.js"
 },
 // 所有webpack插件的配置節(jié)點(diǎn)
 plugins:[
 new htmlWebpackPlugin({
  template:path.join(__dirname,"./src/index.html"),
  filename:"index.html"
 })
 ],
 // 配置第三方loader模塊
 module:{
 rules:[
  // 第三方模塊的匹配規(guī)則
  {test:/\.css$/,use:["style-loader","css-loader"]}, // 處理css文件的loader
  {test:/\.jpg|png|gif|bmp|jpeg$/,use:"url-loader"} // 處理圖片url的loader
 ]
 }
}

使用url-loader打包之后 在頁(yè)面中 默認(rèn)會(huì)將路徑以base64編碼 減少圖片的二次請(qǐng)求

關(guān)閉默認(rèn)的以base64編碼:

進(jìn)行配置:
給url-loader傳參 格式和網(wǎng)頁(yè)url地址傳參完全一致 在url-loader后面加問(wèn)號(hào)傳遞參數(shù)即可
屬性名:limit
設(shè)定一個(gè)大小范圍 當(dāng)圖片大于或等于給定的limit值(單位byte) 則不將url轉(zhuǎn)換為base64格式 反之進(jìn)行轉(zhuǎn)換
格式:{test:/\.jpg|png|gif|bmp|jpeg$/,use:"url-loader?limit=圖片大小"}

如何查看圖片大?。?/p>

右擊圖片 - 屬性

在這里插入圖片描述

:若圖片長(zhǎng)度大于三位 每三位要以逗號(hào)進(jìn)行分隔
496886要寫(xiě)成496,886
例:{test:/\.jpg|png|gif|bmp|jpeg$/,use:"url-loader?limit=496,886"}

若不進(jìn)行base64的轉(zhuǎn)換

圖片的名稱會(huì)默認(rèn)變成一串Hash字符串 以防止圖片重名

可通過(guò)配置 不使用默認(rèn)的改名為Hash字符串:
在url-loader后面加上name=[name].[ext]即可
[name]意為:之前是什么名稱 打包之后也叫什么名稱
[ext]意為:之前是什么后綴名 打包之后也叫什么后綴名

例:{test:/\.jpg|png|gif|bmp|jpeg$/,use:"url-loader?limit=496,886&name=[name].[ext]"}

否則 由于打包后的url引用的直接是文件名.后綴名的格式 若有重名的圖片 即使不在同一個(gè)文件夾下
也會(huì)出現(xiàn)引入的圖片重復(fù)

為避免此問(wèn)題 需要將名稱改為不重復(fù)的

既要不改文件名 又要避免圖片重復(fù)問(wèn)題
可配置為:{test:/\.jpg|png|gif|bmp|jpeg$/,use:"url-loader?limit=496,886&name=[hash:8]-[name].[ext]"}
name=[hash:8]-[name].[ext]的意思是:在圖片前面帶上32位hash值的前8位 中間用短橫杠進(jìn)行連接 具體的hash值長(zhǎng)度可根據(jù)需要設(shè)置 但不能超過(guò)32 因?yàn)閔ash值最大只有32位

二、處理字體文件

在main.js里引入字體文件:

若通過(guò)路徑的形式引入node_modules中相關(guān)的文件 可省略node_modules
若不寫(xiě)node_modules 默認(rèn)會(huì)從node_modules里查找

例:
bootstrap.css文件在node_modules/bootstrap/dist/css下
但在引入的時(shí)候 可以這么寫(xiě):

import "bootstrap/dist/css/bootstrap.css"

然后 同樣 在webpack.config.js中進(jìn)行配置即可:
字體文件也是使用url-loader進(jìn)行處理

var path=require("path")
var htmlWebpackPlugin=require("html-webpack-plugin")

module.exports={
 entry:path.join(__dirname,"./src/main.js"),
 output:{
 path:path.join(__dirname,"./dist"),
 filename:"bundle.js"
 },
 // 所有webpack插件的配置節(jié)點(diǎn)
 plugins:[
 new htmlWebpackPlugin({
  template:path.join(__dirname,"./src/index.html"),
  filename:"index.html"
 })
 ],
 // 配置第三方loader模塊
 module:{
 rules:[
  // 第三方模塊的匹配規(guī)則
  {test:/\.css$/,use:["style-loader","css-loader"]},
  {test:/\.jpg|png|gif|bmp|jpeg$/,use:"url-loader?limit=496,886&name=[hash:8]-[name].[ext]"},
  {test:/\.ttf|eot|svg|woff|woff2$/,use:"url-loader"} // 處理字體文件的loader
 ]
 }
}

到此這篇關(guān)于在Webpack中用url-loader處理圖片和字體的文章就介紹到這了,更多相關(guān)在Webpack中用url-loader處理圖片和字體內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

千阳县| 中阳县| 林周县| 土默特左旗| 永丰县| 贵德县| 锡林郭勒盟| 崇仁县| 阳春市| 兰溪市| 九江县| 开原市| 中卫市| 海口市| 同江市| 久治县| 鹤壁市| 阳曲县| 绵竹市| 淮南市| 松桃| 常宁市| 远安县| 偏关县| 镇安县| 清新县| 太保市| 石阡县| 香港 | 海城市| 交城县| 马山县| 陇西县| 许昌县| 雷波县| 元江| 凭祥市| 商都县| 商水县| 若尔盖县| 鹤岗市|