详解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 触发事件列表 比较不错
Sep 03 Javascript
处理及遍历XML文档DOM元素属性及方法整理
Aug 23 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
Aug 27 Javascript
JavaScript实现九九乘法表的简单实例
Jun 07 Javascript
jquery 中toggle的2种用法详解(推荐)
Sep 02 Javascript
bootstrap suggest下拉框使用详解
Apr 10 Javascript
浅谈Express异步进化史
Sep 09 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
Sep 21 Javascript
Vue路由history模式解决404问题的几种方法
Sep 29 Javascript
关于vue状态过渡transition不起作用的原因解决
Apr 09 Javascript
js实现消灭星星(web简易版)
Mar 24 Javascript
angular共享依赖的解决方案分享
Oct 15 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页面局部刷新功能的实现小结
2013/06/21 PHP
PHP网站开发中常用的8个小技巧
2015/02/13 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
2018/06/22 PHP
javascript 一个自定义长度的文本自动换行的函数
2007/08/19 Javascript
javascript 避免闭包引发的问题
2009/03/17 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
Javascript基础教程之比较null和undefined值
2016/05/16 Javascript
AngularJS入门之动画
2016/07/27 Javascript
JavaScript中removeChild 方法开发示例代码
2016/08/15 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
2017/08/30 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
2019/02/27 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
Python中标准库OS的常用方法总结大全
2017/07/19 Python
python监控文件并且发送告警邮件
2018/06/21 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
python设置表格边框的具体方法
2020/07/17 Python
纯css3制作煽动翅膀的蝴蝶的示例
2018/04/23 HTML / CSS
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
十八届三中全会学习方案
2014/02/16 职场文书
中考冲刺决心书
2014/03/11 职场文书
追悼会答谢词
2015/01/05 职场文书
联欢会开场白
2015/06/01 职场文书
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
MySQL学习之基础操作总结
2022/03/19 MySQL
《现实主义勇者的王国再建记》第三弹OST全曲试听片段公开
2022/04/04 日漫
Python 全局空间和局部空间
2022/04/06 Python