
Webpack5 教程处理图片资源
编译工具 / 发布于 3个月前 / 更新于 / 本文字数: 3.57k 字 /教程集数: 4
标签: webpack5图片资源打包 / webpack5教程 / webpack5图片处理
处理图片资源
过去在 Webpack4 时,我们处理图片资源通过 file-loader 和 url-loader 进行处理,现在 Webpack5 已经将两个 Loader 功能内置到 Webpack 里了,我们只需要简单配置即可处理图片资源。
配置
const path = require("path");
module.exports = {
entry: "./src/main.js",
output: {
path: path.resolve(__dirname, "dist"),
filename: "main.js",
},
module: {
rules: [
{
// 用来匹配 .css 结尾的文件
test: /\.css$/,
// use 数组里面 Loader 执行顺序是从右到左
use: ["style-loader", "css-loader"],
},
{
test: /\.less$/,
use: ["style-loader", "css-loader", "less-loader"],
},
{
test: /\.s[ac]ss$/,
use: ["style-loader", "css-loader", "sass-loader"],
},
{
test: /\.(png|jpe?g|gif|webp)$/,
type: "asset",
},
],
},
plugins: [],
mode: "development",
};
使用资源
- src/less/index.less
.box2 {
width: 100px;
height: 100px;
background-image: url("../images/1.jpeg");
background-size: cover;
}
运行
npx webpack
此时如果查看 dist 目录的话,会发现多了图片资源,因为 Webpack 会将所有打包好的资源输出到 dist 目录下。
对图片资源进行优化
将小于某个大小的图片转化成 data URI 形式(Base64 格式)
const path = require("path");
module.exports = {
entry: "./src/main.js",
output: {
path: path.resolve(__dirname, "dist"),
filename: "main.js",
},
module: {
rules: [
{
// 用来匹配 .css 结尾的文件
test: /\.css$/,
// use 数组里面 Loader 执行顺序是从右到左
use: ["style-loader", "css-loader"],
},
{
test: /\.less$/,
use: ["style-loader", "css-loader", "less-loader"],
},
{
test: /\.s[ac]ss$/,
use: ["style-loader", "css-loader", "sass-loader"],
},
{
test: /\.(png|jpe?g|gif|webp)$/,
type: "asset",
parser: {
dataUrlCondition: {
maxSize: 10 * 1024 // 小于10kb的图片会被base64处理
}
}
},
],
},
plugins: [],
mode: "development",
};
parser: {
dataUrlCondition: {
maxSize: 10 * 1024 // 小于10kb的图片会被base64处理
}
- 优点:减少请求数量
- 缺点:体积变得更大
修改输出资源的名称和路径
const path = require("path");
module.exports = {
entry: "./src/main.js",
output: {
path: path.resolve(__dirname, "dist"),
filename: "static/js/main.js", // 将 js 文件输出到 static/js 目录中
},
module: {
rules: [
{
// 用来匹配 .css 结尾的文件
test: /\.css$/,
// use 数组里面 Loader 执行顺序是从右到左
use: ["style-loader", "css-loader"],
},
{
test: /\.less$/,
use: ["style-loader", "css-loader", "less-loader"],
},
{
test: /\.s[ac]ss$/,
use: ["style-loader", "css-loader", "sass-loader"],
},
{
test: /\.styl$/,
use: ["style-loader", "css-loader", "stylus-loader"],
},
{
test: /\.(png|jpe?g|gif|webp)$/,
type: "asset",
parser: {
dataUrlCondition: {
maxSize: 10 * 1024, // 小于10kb的图片会被base64处理
},
},
generator: {
// 将图片文件输出到 static/imgs 目录中
// 将图片文件命名 [hash:8][ext][query]
// [hash:8]: hash值取8位
// [ext]: 使用之前的文件扩展名
// [query]: 添加之前的query参数
filename: "static/imgs/[hash:8][ext][query]",
},
},
],
},
plugins: [],
mode: "development",
};
generator: {
// 将图片文件输出到 static/imgs 目录中
// 将图片文件命名 [hash:8][ext][query]
// [hash:8]: hash值取8位
// [ext]: 使用之前的文件扩展名
// [query]: 添加之前的query参数
filename: "static/imgs/[hash:8][ext][query]",
},
版权提示
1.除了标识原创之外,其他可能来源于网友的分享,仅供学习使用2.如您发现侵犯了您的权利,请联系我们删除
3.转载必须带本文链接,否则你将侵权
4.关于会员或其发布的相关内容均由会员自行提供,会员依法应对其提供的任何信息承担全部责任,本站不对此承担任何法律责任
0 人点赞
评论区 (0)
最新视频教程
-
-
黑白课堂
- Laravel6 全套入门实战
- 4651 2
-
-
-
黑白课堂
- Laravel6 全套入门实战
- 4572 5
-
-
-
黑白课堂
- Laravel6 全套入门实战
- 4457 0
-
-
-
黑白课堂
- Laravel6 全套入门实战
- 4077 0
-
-
-
黑白课堂
- Laravel6 全套入门实战
- 4079 0
-
最新视频课程
-
Laravel 消息通知使用
黑白课堂
285512 03年前
-
ace.js 打造一款属于你的 Web 编辑器,入门文档。
黑白课堂
15294 04年前
-
Laravel 实现 RBAC 权限管理功能 Permission 包操作
黑白课堂
14136 05年前
-
微信小程序等比例图片压缩上传,100%可用,非官方压缩方法
黑白课堂
12180 14年前
-
宝塔面板强制绑定账号修改为不强制绑定方案
黑白课堂
11366 03年前
-
wap2App 入门讲解,100%速成,全面为你讲解。
黑白课堂
9211 04年前
-
Laravel 设置请求头 header 参数
黑白课堂
8328 03年前
-
Laravel 的 PhpSpreadsheet 包入门
黑白课堂
8325 04年前
-
Laravel 表格操作 Maatwebsite/Laravel-Excel 3.1 最新版本的操作指南
黑白课堂
8297 04年前
-
Linux 下如何监听我们的脚本是否掉线了
黑白课堂
7564 03年前
-
KongQi Laravel Admin2.0 文档安装
黑白课堂
3914 23年前
-
KongQi Laravel admin2.0 layui admin 版本序言
黑白课堂
3342 03年前
-
易语言入门拖入文件导入到超级列表框表格内
哪吒
8405 13年前
-
易语言入门易语言定时任务模块
哪吒
6491 03年前
-
postman 使用手册cookie 使用
哪吒
4975 03年前
-
谷歌浏览器插件教程proxy 代理
哪吒
4534 01年前
-
易语言入门判断文件夹是否存在的方法
哪吒
4255 02年前
-
易语言入门TAB 标签页制作
哪吒
4204 03年前
-
Visual Studio Code 入门和使用教程插件安装使用
哪吒
4135 13年前
-
Visual Studio Code 入门和使用教程安装下载
哪吒
4105 03年前
