Webpack4系列教程(五) 圖片相關配置
寫在前面
在這篇部落格中,我將會你介紹圖片處理部分的相關配置
基礎配置
CSS中引入圖片需要使用file-loader
首先我們把一些圖片放在src/assets/imgs目錄下,並且引入這些圖片
然後我們配置一條rule
:圖片檔案交給file-loader
處理
{
loader: 'file-loader',
options: {
outputPath: 'assets/imgs',
useRelativePath: true
}
}
執行打包後dist目錄結構如下
Base64 編碼
當圖片很小的時候我們可以將圖片轉換為base64嵌入到css檔案中,以減少http請求次數
在處理圖片和進行base64編碼的時候,需要使用url-loader
我們配置一條rule
:圖片檔案交給url-loader
處理
{
loader: 'file-loader',
options: {
outputPath: 'assets/imgs',
useRelativePath: true
}
}
執行打包後dist目錄結構如下
圖片檔案全部被打包到了css檔案中
css檔案達到了142kb,這顯然不是我們想要的,我們希望體積小的圖片轉換為base64,體積更大的還是以圖片格式儲存
我們修改下rule
{
loader: 'url-loader',
options: {
outputPath: 'assets/imgs',
useRelativePath: true,
limit: 20000 //當圖片小於20kb時會轉換成base64
}
}
執行打包後dist目錄結構如下,一張圖片被轉換成base64,三張以圖片格式輸出
壓縮圖片
使用image-webpack-loader
進行圖片的壓縮
配置如下
{
test: /\.jpg$/,
use: [
{
loader: 'url-loader',
options: {
name: '[name].min.[ext]'
outputPath: 'assets/imgs',
useRelativePath: true,
limit: 5000 //當壓縮後的圖片小於5kb時會轉換成base64
}
},
{
loader: 'image-webpack-loader',
options: {
optimizationLevel: 7,
interlaced: false
}
}
]
}
執行打包後dist目錄結構如下,兩張圖片被轉換成base64,兩張以圖片格式輸出
雪碧圖
使用postcss-sprites
進行圖片的壓縮
將專案中需要用到的icon合併到一張圖以減少圖片資源的請求次數
修改postcss.config.js
檔案,配置如下
module.exports = {
plugins: [
require('postcss-sprites')({
spritePath: 'dist/assets/imgs/sprites'
}),
require('autoprefixer')({
"browsers": [
"defaults",
"not ie < 11",
"last 2 versions",
"> 1%",
"iOS 7",
"last 3 iOS versions"
]
})
]
};
其中sprite.min.png
是壓縮後的雪碧圖
相關文章
- Webpack4系列教程(二) HTML相關配置WebHTML
- Webpack4系列教程(三) JS相關配置WebJS
- Webpack4系列教程(四) CSS相關配置WebCSS
- webpack4 系列教程(十): 圖片處理彙總Web
- 【前端】壓縮圖片以及圖片相關概念前端
- Webpack4系列教程 --- 前言Web
- webpack4 系列教程: 前言Web
- webpack4配置(3)-打包css/js/圖片等資源WebCSSJS
- ImageUtils-圖片相關工具類
- webpack4 系列教程(一): 打包JSWebJS
- webpack4系列教程(十):總結Web
- 複習webpack4之圖片打包Web
- webpack4系列教程(一):初識webpackWeb
- webpack4 系列教程(十四):Clean Plugin and Watch ModeWebPlugin
- Webpack4系列教程(一) 基礎入門Web
- vscode外掛開發--快速插入圖片相關cssVSCodeCSS
- Spring配置相關Spring
- Git 相關配置Git
- JDBC 相關配置JDBC
- nginx配置相關Nginx
- VScode配置xdebug相關配置VSCode
- webpack4 系列教程(十一):字型檔案處理Web
- webpack4 系列教程(二): 編譯 ES6Web編譯
- webpack4 系列教程(十三):自動生成HTML檔案WebHTML
- Webpack4系列教程(六) 多頁面解決方案Web
- Webpack4系列教程(七) 單頁面解決方案Web
- SAP PM 初級系列10 - 維護通知單相關的配置
- ubuntu中Django相關配置UbuntuDjango
- SpringCloud(1)-Eureka相關配置SpringGCCloud
- SpringCloud(3)-OpenFeign相關配置SpringGCCloud
- Mariadb之日誌相關配置
- Springmvc相關配置總結SpringMVC
- php-fpm相關配置PHP
- vue-router相關配置Vue
- Selenium系列教程-06 圖片上傳以及Web Element常用操作方法Web
- [ webpack4 ] 配置屬於自己的打包系統教程(一)—— 基礎配置篇Web
- [ webpack4 ] 配置屬於自己的打包系統教程(二)—— 資源配置篇Web
- Kafka筆記系列-概念相關Kafka筆記