详解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 相关文章推荐
jQuery Div中加载其他页面的实现代码
Feb 27 Javascript
Event altKey,ctrlKey,shiftKey属性解析
Dec 18 Javascript
jquery实现点击页面计算点击次数
Jan 23 Javascript
详解JavaScript表单验证(E-mail 验证)
Mar 31 Javascript
Bootstrap自定义文件上传下载样式
May 26 Javascript
canvas学习之API整理笔记(二)
Dec 29 Javascript
js获取浏览器和屏幕的各种宽度高度
Feb 22 Javascript
微信小程序全局变量功能与用法详解
Jan 22 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
Jul 16 Javascript
Vue实现push数组并删除的例子
Nov 01 Javascript
vue 扩展现有组件的操作
Aug 14 Javascript
浅谈vue2的$refs在vue3组合式API中的替代方法
Apr 18 Vue.js
在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中使用memcache存储session的三种配置方法
2014/04/05 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
2019/02/25 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
2014/03/13 Javascript
js图片处理示例代码
2014/05/12 Javascript
javascript使用正则控制input输入框允许输入的值方法大全
2014/06/19 Javascript
jQuery给动态添加的元素绑定事件的方法
2015/03/09 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
Bootstrap每天必学之媒体对象
2015/11/30 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
2016/01/18 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
原生nodejs使用websocket代码分享
2018/04/07 NodeJs
微信小程序自定义prompt组件步骤详解
2018/06/12 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
python实现Windows电脑定时关机
2018/06/20 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
Python基于pyecharts实现关联图绘制
2020/03/27 Python
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
培训研修方案
2014/06/06 职场文书
机械专业应届毕业生自荐书
2014/06/12 职场文书
乡镇组织委员个人整改措施
2014/09/16 职场文书
电影复兴之路观后感
2015/06/02 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书
Python趣味实战之手把手教你实现举牌小人生成器
2021/06/07 Python
Feign调用传输文件异常的解决
2021/06/24 Java/Android
Python利用zhdate模块实现农历日期处理
2022/03/31 Python