详解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 锚点跳转滚动条平滑滚动一句话代码
Apr 30 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
Mar 21 Javascript
js 图片随机不定向浮动的实现代码
Jul 02 Javascript
Javascript 实现图片无缝滚动
Dec 19 Javascript
jQuery点击改变class并toggle及toggleClass()方法定义用法
Dec 11 Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
May 10 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
Nov 22 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
Mar 24 Javascript
微信小程序实现循环动画效果
Jul 16 Javascript
jQuery提示框插件SweetAlert用法分析
Aug 05 jQuery
JS实现躲避粒子小游戏
Jun 18 Javascript
原生小程序封装跑马灯效果
Oct 21 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数组函数序列之array_search()- 按元素值返回键名
2011/11/04 PHP
微信公众平台开发关注及取消关注事件的方法
2014/12/23 PHP
使用PHP开发留言板功能
2019/11/19 PHP
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
jquery checkbox全选、取消全选实现代码
2010/03/05 Javascript
javascript 函数参数限制说明
2010/11/19 Javascript
让alert不出现弹窗的两种方法
2014/05/18 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
易操作的jQuery表单提示插件
2015/12/01 Javascript
js格式化输入框内金额、银行卡号
2016/02/01 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
vue-cli项目修改文件热重载失效的解决方法
2018/09/19 Javascript
javascript实现考勤日历功能
2018/11/29 Javascript
Jquery的autocomplete插件用法及参数讲解
2019/03/12 jQuery
Vue实现数据表格合并列rowspan效果
2020/11/30 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
2019/09/02 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
Python自动连接ssh的方法
2015/03/07 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
Python类的绑定方法和非绑定方法实例解析
2020/03/04 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
纯css3无js实现的Android Logo(有简单动画)
2013/01/21 HTML / CSS
纯css3实现的竖形无限级导航
2014/12/10 HTML / CSS
香港交友网站:be2香港
2018/07/22 全球购物
英国定做窗帘和纺织品面料一站式商店:Dekoria
2018/08/29 全球购物
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
西部世纪面试题
2014/12/05 面试题
学校捐书倡议书
2015/04/27 职场文书
无罪辩护词范文
2015/05/21 职场文书
Nebula Graph解决风控业务实践
2022/03/31 MySQL
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL