详解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 相关文章推荐
按钮JS复制文本框和表格的代码
Apr 01 Javascript
javascript 3d 逐侦产品展示(核心精简)
Mar 26 Javascript
JS给超链接加确认对话框的方法
Feb 24 Javascript
TypeError document.getElementById(...) is null错误原因
May 18 Javascript
jQuery的extend方法【三种】
Dec 14 Javascript
jQuery 操作 HTML 元素和属性的方法
Nov 12 jQuery
vscode 开发Vue项目的方法步骤
Nov 25 Javascript
微信小程序实现的日期午别医生排班表功能示例
Jan 09 Javascript
通过javascript实现段落的收缩与展开
Jun 26 Javascript
ES6使用新特性Proxy实现的数据绑定功能实例
May 11 Javascript
vue递归获取父元素的元素实例
Aug 07 Javascript
js实现类选择器和name属性选择器的示例步骤
Feb 07 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实现快速排序的三种方法分享
2014/03/12 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
javascript some()函数用法详解
2014/11/13 PHP
Laravel框架实现定时发布任务的方法
2018/08/16 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
jquery如何判断某元素是否具备指定的样式
2013/11/05 Javascript
jquery获取radio值实例
2014/10/16 Javascript
基于JS代码实现当鼠标悬停表格上显示这一格的全部内容
2016/06/12 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
JavaScript和jQuery制作光棒效果
2017/02/24 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
微信小程序实现点赞、取消点赞功能
2018/11/02 Javascript
实现elementUI表单的全局验证的方法步骤
2019/04/29 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
Python读取图片EXIF信息类库介绍和使用实例
2014/07/10 Python
Python中endswith()函数的基本使用
2015/04/07 Python
深入理解Python中命名空间的查找规则LEGB
2015/08/06 Python
Python入门_学会创建并调用函数的方法
2017/05/16 Python
Python将多个excel文件合并为一个文件
2018/01/03 Python
python获取当前目录路径和上级路径的实例
2018/04/26 Python
Python实现的多进程和多线程功能示例
2018/05/29 Python
python 阶乘累加和的实例
2019/02/01 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
详解Python3 pandas.merge用法
2019/09/05 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
软件工程师岗位职责
2013/11/16 职场文书
《曹刿论战》教学反思
2014/03/02 职场文书
超市店庆活动方案
2014/08/31 职场文书
教师思想工作总结2015
2015/05/13 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
导游词之南迦巴瓦峰
2019/11/19 职场文书
Python数据分析之pandas函数详解
2021/04/21 Python
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python