详解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 相关文章推荐
javascript 密码强弱度检测万能插件
Feb 25 Javascript
js获取元素在浏览器中的绝对位置
Jul 24 Javascript
JavaScript OOP面向对象介绍
Dec 02 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
Sep 12 Javascript
JQuery实现点击div以外的位置隐藏该div窗口
Sep 13 Javascript
jQuery中:image选择器用法实例
Jan 03 Javascript
jQuery 判断图片是否加载完成方法汇总
Aug 10 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
Jun 21 Javascript
JS动态给对象添加事件的简单方法
Jul 19 Javascript
angularjs结合html5实现拖拽功能
Jun 25 Javascript
js实现带箭头的进度流程
Mar 26 Javascript
原生JS实现飞机大战小游戏
Jun 09 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
关于PHPDocument 代码注释规范的总结
2013/06/25 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
2013/07/01 PHP
php calender(日历)二个版本代码示例(解决2038问题)
2013/12/24 PHP
PHP实现加密的几种方式介绍
2015/02/22 PHP
php实现网站留言板功能
2015/11/04 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
JQuery 学习笔记 选择器之四
2009/07/23 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
2016/05/31 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
Thinkjs3新手入门之添加一个新的页面
2017/12/06 Javascript
vue2.0父子组件间传递数据的方法
2018/08/16 Javascript
JS实现图片切换效果
2018/11/17 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
2019/04/17 Javascript
微信小程序 wxParse插件显示视频问题
2019/09/27 Javascript
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
小程序双头slider选择器的实现示例
2020/03/31 Javascript
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
2018/03/14 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
2018/11/06 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
python实现人机猜拳小游戏
2020/02/03 Python
美国知名的女性服饰品牌:LOFT(洛芙特)
2016/08/05 全球购物
英国探险旅游专家:Explore
2018/12/20 全球购物
软件设计的目标是什么
2016/12/04 面试题
教师一岗双责责任书
2014/04/16 职场文书
旅游与环境专业求职信
2014/06/05 职场文书
计生工作先进事迹
2014/08/15 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
婚宴来宾致辞
2015/07/28 职场文书