详解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 相关文章推荐
Js+XML 操作
Sep 20 Javascript
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
Jan 29 Javascript
jQuery插件datalist实现很好看的input下拉列表
Jul 14 Javascript
js获取元素的外链样式的简单实现方法
Jun 06 Javascript
AngularJS应用开发思维之依赖注入3
Aug 19 Javascript
超简单的Vue.js环境搭建教程
Mar 17 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
Mar 12 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
Feb 28 Javascript
vue项目添加多页面配置的步骤详解
May 22 Javascript
JavaScript canvas绘制渐变颜色的矩形
Feb 18 Javascript
在Vue中使用Echarts实例图的方法实例
Oct 10 Javascript
浅析JavaScript中的变量提升
Jun 01 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和ACCESS写聊天室(十)
2006/10/09 PHP
PHP中for与foreach的区别分析
2011/03/09 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
PHP中异常处理的一些方法整理
2015/07/03 PHP
php无限级分类实现方法分析
2016/10/19 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
php实现的rc4加密解密类定义与用法示例
2018/08/16 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
2020/03/23 PHP
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
2009/08/04 Javascript
js获取页面description的方法
2015/05/21 Javascript
基于jQuery实现的扇形定时器附源码下载
2015/10/20 Javascript
JS实现单击输入框弹出选择框效果完整实例
2015/12/14 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
2016/10/27 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
JS闭包可被利用的常见场景小结
2017/04/09 Javascript
关于express与koa的使用对比详解
2018/01/25 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
python批量导出导入MySQL用户的方法
2013/11/15 Python
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
Python实现读取txt文件并画三维图简单代码示例
2017/12/09 Python
selenium+python实现自动化登录的方法
2018/09/04 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
Python代码生成视频的缩略图的实例讲解
2019/12/22 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
css3 响应式媒体查询的示例代码
2019/09/25 HTML / CSS
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
办公室主任岗位承诺书
2014/05/29 职场文书
房产授权委托书范本
2014/09/22 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书