6.webpack4打包图片资源
4.1执行步骤
1)创建相关文件,并引入demo中使用到的图片资源文件,如下图红框部分
2)下载相关依赖
url-loader@3.0.0、file-loader5.0.2、html-loader@0.5.5
url-loader的使用依赖于file-loader,所以也需要下载file-loader
①url-loader:处理css、字体库等文件
②html-loader:处理html文件中的img图片,负责引入img从而能够被url-loader进行处理
通过url-loader可以对css文件中使用到的图片进行打包,如backgroud-image属性使用到的背景图片。
通过html-loader、url-loader可以处理html图片,这里要注意:html-loader采用commonjs解析,而url-loader默认采用es6模块化,要想使用html-loader需要将url-loader采用的解析方式改成commonjs。
4.2 代码段
1)webpack.config.js
const { resolve } = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");module.exports = {entry: "./src/index.js",output: {filename: "built.js",path: resove(__dirname,"build")},module: {rules: [{test: /\.css$/,use: ["style-loader","css-loader"]},{test: /\.less$/,use: ["style-loader","css-loader","less-loader"]},{// 使用url-loader解决webpack无法处理css样式中的url地址// url-loader模块依赖file-loader模块// 处理图片资源test: /\.(jpg|jpeg|png|gif)$/loader: "url-loader",options: {limit: 8 * 1024,name: '[hash:10][ext]'// 关闭url-loader默认的es6模块化解析,改为commonjs解析esModule: false}},{// 使用html-loader处理html文件中的img图片(负责引入html中的img,从而能被url-// loader处理)// 注意:使用html-loader需要将url-loader中的配置项esModule改成false,将// url-loader改为commonjs解析,而不是默认的es6模块化解析,因为html-loader// 使用的是commonjs解析test: /\.html$/,loader: "html-loader"}]},plugins: [new HtmlWebpackPlugin({template: "./src/index.html"})]
}
2)index.less
#box1 {width: 100px;height: 100px;background-image: url('./vue.jpg');background-repeat: no-repeat;background-size: 100% 100%;background-color: pink;
}#box2 {width: 200px;height: 200px;background-image: url('./react.png');background-repeat: no-repeat;background-size: 100% 100%;background-color: skyblue;
}#box3 {width: 300px;height: 300px;background-image: url('./angular.jpg');background-repeat: no-repeat;background-size: 100% 100%;background-color: yellowgreen;
}
3)index.js
import './index.less';
4)index.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="box1"></div><div id="box2"></div><div id="box3"></div><img src="./angular.jpg" alt="angular">
</body>
</html>
图片自己去替换
总结:
① url-loader模块依赖file-loader,要想使用url-loader处理css中的url图片需要先下载file-loader、url-loader模块,再对url-loader进行配置
② 通过配置url-loader中对的limit,可以设置对limit范围内大小的图片进行base64压缩处理(上文中设置的是8kb内的图片),大于的则会原样输出。进行了base64压缩处理的图片可以在built.js中找到对应的代码段。使用limit的优点:可以减少请求数量(减轻服务器压力);缺点:进行base64压缩后的图片体积会变大。
③ 通过配置url-loader中的name为[hash:10][ext],可以对经过url-loader处理的图片进行hash的截取前十位,[ext]代表图片的后缀原样输出。
④ 在使用html-loader处理html的img图片,负责引入img从而能被url-loader进行处理时,存在html-loader的解析方式为commonjs解析,而url-loader使用的是ES6模块化解析,此时可以通过在url-loader配置esModule: false 将url-loader默认的解析方式(es6模块化)关闭,此时url-loader的解析方式会变成commonjs
6.webpack4打包图片资源相关推荐
- webpack打包图片资源问题
在实际应用中有以下几种图片的引用方式: HTML文件中img标签的src属性引用或者内嵌样式引用 <img src="photo.jpg" /> <div sty ...
- pyinstaller打包python应用之方法(含打包图片资源)
pyinstaller是python的打包工具,结合我的工程,记录下我的使用过程及经验总结. 1.pyinstaller的简单使用 1.1 打包成一个文件 先cd切换到工程目录下,再执行: pyins ...
- webpack4打包优化
layout: post title: webpack4打包优化 categories: webpack tags: webpack4打包优化 针对vue cli3.0+,webpack4.0+,no ...
- webpack4打包实战
一.模块化打包工具的由来 ES Module存在环境兼容问题,通过模块化方式划分的模块较多,网络请求频繁,在前端应用开发中不仅仅需要JavaScript代码需要模块化,随着应用的日益复杂,html,c ...
- webpack4打包传统H5多页面
1. webpack核心概念 入口(entry) 输出(output) loader 插件(plugins) 官方文档: https://www.webpackjs.com/configuration ...
- webpack4打包html,html-webpack-plugin详解
打包html使用插件:html-webpack-plugin 安装 npm i --save-dev html-webpack-plugin 配置文件 const path = require(&qu ...
- webpack4打包工具
什么是webpack webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(de ...
- iOS静态库中打包图片资源
问题描述: 最近在做一个项目,需要做一个含有图片资源得静态库.a,但是苹果提供得静态库工程无法将图片资源导入,只能通过外加.bundle文件的方式,这样在调试阶段也需要使用bundle文件,而每次更新 ...
- webpack配置-打包图片资源
项目目录: 对于webpack4 来说的话,只要安装url-loader, file-loader就可以的 npm i html-loader url-loader file-loader -D we ...
最新文章
- mysql ef sql语句_EF to MySQL 的 Database.ExecuteSqlCommand 和 SqlQuery
- SLAM算法实习生面试总结
- ETSI MEC — 与 NFV 的融合
- python读取大文件太慢_python读取大文件越来越慢的原因与解决
- python菜鸟教程n-Python 元组
- mmap 和 shm 区别
- 寒假万恶之源3:抓老鼠啊~亏了还是赚了?
- OpenCV学习(27) 直方图(4)
- Flask项目--发送短信验证码
- Android学习笔记(十三)
- java异步处理同步化_java 异步查询转同步多种实现方式:循环等待,CountDownLatch,Spring EventListener,超时处理和空循环性能优化...
- win8.1 删除这台电脑里,默认的库文件夹
- 218个数据采集模板免费下载(最新)
- comsol matlab script,comsol script
- 关于区块链及其数据溯源的学习笔记
- Excel VBA 免密查看VBE加密代码
- 如何给C盘增大空间,无损
- oculusHome 无法登录提示显示错误 ovr....
- 如何使树梅派的桌面图标大小变化
- 高德SD地图数据生产自动化技术的路线与实践(道路篇)
热门文章
- 互联网时代身份证识别让商家更好服务客户
- 实现Linux/Android双系统启动和重启切换的一个思路
- 我愿称之为史上最全的深度学习面经总结(附答案详解)
- 高压电压采样之差分放大电路
- python画原型图,Digraph 安装采坑
- Lonesome Partners(最大曼哈顿距离)
- 康力源在创业板提交注册:预计全年收入同比下滑,衡墩建持股98%
- gtav登录请确认不是机器人_GTA5線上被誤封號申訴方法【註:網站填表現在已經無法解封了,因為都是機器人自動回覆】...
- B860AV2.1-A/M/B_1g/2g-通刷_当贝纯净桌面-线刷固件包
- 【Android春招每日一练】(九) 剑指4题+Android基础