详解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 相关文章推荐
Dojo之路:如何利用Dojo实现Drag and Drop效果
Apr 10 Javascript
JQUERY THICKBOX弹出层插件
Aug 30 Javascript
js 中{},[]中括号,大括号使用详解
May 12 Javascript
javascript 数字格式化输出的实现代码
Dec 10 Javascript
jQuery的live()方法对hover事件的处理示例
Feb 27 Javascript
关于js函数解释(包括内嵌,对象等)
Nov 20 Javascript
zTree获取当前节点的下一级子节点数实例
Sep 05 Javascript
webuploader实现上传图片到服务器功能
Aug 16 Javascript
Vue项目中最新用到的一些实用小技巧
Nov 06 Javascript
js核心基础之闭包的应用实例分析
May 11 Javascript
js异步接口并发数量控制的方法示例
Nov 22 Javascript
vue实现表格合并功能
Dec 01 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中的CMS的涵义
2007/03/11 PHP
用PHP查询搜索引擎排名位置的代码
2010/01/05 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
解析php常用image图像函数集
2013/06/24 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
2014/04/28 PHP
微信营销平台系统?刮刮乐的开发
2014/06/10 PHP
PHP的魔术常量__METHOD__简介
2014/07/08 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
基于javascript实现图片懒加载
2016/01/05 Javascript
微信小程序 Flex布局详解
2016/10/09 Javascript
AngularJS入门示例之Hello World详解
2017/01/04 Javascript
jQuery中$原理实例分析
2018/08/13 jQuery
微信小程序云开发如何使用云函数生成二维码
2019/05/18 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
js实现秒表计时器
2019/12/16 Javascript
Vue-cli3多页面配置详解
2020/03/22 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
javascript前端和后台进行数据交互方法示例
2020/08/07 Javascript
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
[08:53]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS 选手采访
2021/03/11 DOTA
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
详解Django框架中用context来解析模板的方法
2015/07/20 Python
python开发之str.format()用法实例分析
2016/02/22 Python
python opencv实现运动检测
2018/07/10 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
迟到检讨书300字
2014/02/14 职场文书
运动会入场词60字
2014/02/15 职场文书
普通党员整改措施
2014/10/24 职场文书
征求意见函
2015/06/05 职场文书
只用20行Python代码实现屏幕录制功能
2021/06/02 Python
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
2021/06/07 Python
python神经网络学习 使用Keras进行简单分类
2022/05/04 Python