详解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 相关文章推荐
AJAX分页的代码(后台asp.net)
Feb 14 Javascript
一个简单的弹性返回顶部JS代码实现介绍
Jun 09 Javascript
javascript调试之DOM断点调试法使用技巧分享
Apr 15 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
Aug 22 Javascript
基于jQuery实现表单提交验证
Nov 24 Javascript
javascript原型链继承用法实例分析
Jan 28 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
Feb 28 Javascript
jQuery实现浮动层随浏览器滚动条滚动的方法
Sep 22 Javascript
bootstrap下拉菜单使用方法解析
Jan 13 Javascript
深入浅析Vue全局组件与局部组件的区别
Jun 15 Javascript
layui导出所有数据的例子
Sep 10 Javascript
JavaScript数组排序的六种常见算法总结
Aug 18 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
使用cookie实现统计访问者登陆次数
2013/06/08 PHP
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
ThinkPHP CURD方法之order方法详解
2014/06/18 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
document.all还是document.getElementsByName?
2006/07/21 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
JS 跳转页面延迟2种方法
2013/03/29 Javascript
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
使用jquery组件qrcode生成二维码及应用指南
2015/02/22 Javascript
JQuery中两个ul标签的li互相移动实现方法
2015/05/18 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
详解Vue的computed(计算属性)使用实例之TodoList
2017/08/07 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
2018/03/06 Javascript
NodeJs之word文件生成与解析的实现代码
2019/04/01 NodeJs
javascript function(函数类型)使用与注意事项小结
2019/06/10 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
2020/03/25 Javascript
JavaScript实现网页留言板功能
2020/11/23 Javascript
python实现连续图文识别
2018/12/18 Python
Python线程池模块ThreadPoolExecutor用法分析
2018/12/28 Python
使用python获取邮箱邮件的设置方法
2019/09/20 Python
Python imageio读取视频并进行编解码详解
2019/12/10 Python
浅谈tensorflow 中tf.concat()的使用
2020/02/07 Python
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
2014年宣传思想工作总结
2014/12/10 职场文书
高考升学宴答谢词
2015/01/20 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
Python 数据可视化之Bokeh详解
2021/11/02 Python
十大冰系宝可梦排名,颜值最高的阿罗拉九尾,第三使用率第一
2022/03/18 日漫
利用Python实时获取steam特惠游戏数据
2022/06/25 Python