详解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 中document.URL 和 windows.location.href 的区别
Nov 11 Javascript
capacityFixed 基于jquery的类似于新浪微博新消息提示的定位框
May 24 Javascript
JQuery自适应窗口大小导航菜单附源码下载
Sep 01 Javascript
AngularJS基础 ng-mouseover 指令简单示例
Aug 02 Javascript
jquery判断iPhone、Android设备类型
Sep 14 Javascript
全面解析node 表单的图片上传
Nov 21 Javascript
JavaScript优化以及前段开发小技巧
Feb 02 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
Jun 19 Javascript
JS装饰器函数用法总结
Apr 21 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
Jul 18 Javascript
vue通过video.js解决m3u8视频播放格式的方法
Jul 30 Javascript
微信小程序点击滚动到指定位置的实现
May 22 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 学习提高路线分享
2011/10/23 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
2019/05/05 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
jquery为页面增加快捷键示例
2014/01/31 Javascript
node.js中的console用法总结
2014/12/15 Javascript
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
微信小程序-getUserInfo回调的实例详解
2017/10/27 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
在vue项目中引入高德地图及其UI组件的方法
2018/09/04 Javascript
从零开始封装自己的自定义Vue组件
2018/10/09 Javascript
Angular短信模板校验代码
2020/09/23 Javascript
理解Python中的With语句
2015/02/02 Python
探究Python中isalnum()方法的使用
2015/05/18 Python
python实现井字棋游戏
2020/03/30 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
Python回文字符串及回文数字判定功能示例
2018/03/20 Python
Python3中lambda表达式与函数式编程讲解
2019/01/14 Python
Python 监测文件是否更新的方法
2019/06/10 Python
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
捷克体育用品购物网站:D-sport
2017/12/28 全球购物
客房主管岗位职责
2013/12/09 职场文书
军训自我鉴定200字
2014/02/13 职场文书
新教师工作感言
2014/02/16 职场文书
电台实习生求职信
2014/02/25 职场文书
名人演讲稿范文
2014/09/16 职场文书
学习退步检讨书
2014/09/28 职场文书
班子个人四风问题整改措施
2014/10/04 职场文书
地雷战观后感
2015/06/09 职场文书
电影红河谷观后感
2015/06/11 职场文书
2016年小学生寒假总结
2015/10/10 职场文书
教师法制教育培训学习心得体会
2016/01/14 职场文书
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python