详解webpack之图片引入-增强的file-loader:url-loader


Posted in Javascript onOctober 08, 2018

前言:

本文介绍了url-loader(增强的file-loader);

url-loader作用:根据需求选择性的把某些小图片编码成base64格式写进页面;从而减少服务器请求。优化性能。

url-loader解决的问题:

如果图片较多,会发很多http请求,会降低页面性能。url-loader会将引入的图片编码,生成dataURl。相当于把图片数据翻译成一串字符。再把这串字符打包到文件中,最终只需要引入这个文件就能访问图片了。当然,如果图片较大,编码会消耗性能。因此url-loader提供了一个limit参数,小于limit字节的文件会被转为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内置了file-loader。

通过上面的介绍,我们可以看到,url-loader工作分两种情况:

1.文件大小小于limit参数,url-loader将会把文件转为DataURL;

2.文件大小大于limit,url-loader会调用file-loader进行处理,参数也会直接传给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

执行 npm run build

在dist目录下面找到build成功的index.html页面。在浏览器的控制台中可以看到图片以base64的格式加载进页面。

详解webpack之图片引入-增强的file-loader:url-loader

现在我们做一些优化,如果图片大小小于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';

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JScript中使用ADODB.Stream判断文件编码的代码
Jun 09 Javascript
JS链式调用的实现方法
Mar 07 Javascript
JavaScript对象学习小结
Sep 02 Javascript
浅谈js中的延迟执行和定时执行
May 31 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
Jan 06 Javascript
input 标签实现输入框带提示文字效果(两种方法)
Oct 09 Javascript
用JavaScript做简易的购物车的代码示例
Oct 20 Javascript
javascript回调函数详解
Feb 06 Javascript
React项目动态设置title标题的方法示例
Sep 26 Javascript
Vue实现table上下移动功能示例
Feb 21 Javascript
JS实现动态添加外部js、css到head标签的方法
Jun 05 Javascript
基于canvas实现手写签名(vue)
May 21 Javascript
在angularJs中进行数据遍历的2种方法
Oct 08 #Javascript
webpack之引入图片的实现及问题
Oct 08 #Javascript
angularJs中json数据转换与本地存储的实例
Oct 08 #Javascript
JS中验证整数和小数的正则表达式
Oct 08 #Javascript
webpack@v4升级踩坑(小结)
Oct 08 #Javascript
npm scripts 使用指南详解
Oct 08 #Javascript
webpack4.0 入门实践教程
Oct 08 #Javascript
You might like
PHP+AJAX实现无刷新注册(带用户名实时检测)
2007/01/02 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
PHP fopen函数用法实例讲解
2019/02/15 PHP
永不消失的title提示代码
2007/02/15 Javascript
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
2011/02/25 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
2013/04/12 Javascript
jQuery ReferenceError: $ is not defined 错误的处理办法
2013/05/10 Javascript
JavaScript实现的石头剪刀布游戏源码分享
2014/08/22 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
2015/10/15 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
2016/05/07 Javascript
jQuery获取与设置iframe高度的方法
2016/08/01 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
微信小程序使用swiper组件实现类3D轮播图
2018/08/29 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
JavaScript基于用户照片姓名生成海报
2020/05/29 Javascript
vue+openlayers绘制省市边界线
2020/12/24 Vue.js
[01:51]2014DOTA2西雅图邀请赛 MVP 外卡赛black场间采访
2014/07/09 DOTA
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
python字符串连接方法分析
2016/04/12 Python
Python中第三方库Requests库的高级用法详解
2017/03/12 Python
python数据预处理之数据标准化的几种处理方式
2019/07/17 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
2020/04/26 Python
基于python实现查询ip地址来源
2020/06/02 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
漫威玩具服装及周边商品官方购物网站:Marvel Shop
2019/05/11 全球购物
会计电算化大学生职业规划书
2014/02/05 职场文书
2014年幼儿园植树节活动方案
2014/03/02 职场文书
《莫泊桑拜师》教学反思
2014/04/23 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL