Webpack实战加载SVG的方法


Posted in Javascript onDecember 26, 2017

SVG 作为矢量图的一种标准格式,已经得到了各大浏览器的支持,它也成为了 Web 中矢量图的代名词。 在网页中采用 SVG 代替位图有如下好处:

  1. SVG 相对于位图更清晰,在任意缩放的情况下后不会破坏图形的清晰度,SVG 能方便地解决高分辨率屏幕下图像显示不清楚的问题。
  2. 在图形线条比较简单的情况下,SVG 文件的大小要小于位图,在扁平化 UI 流行的今天,多数情况下 SVG 会更小。
  3. 图形相同的 SVG 比对应的高清图有更好的渲染性能。
  4. SVG 采用和 HTML 一致的 XML 语法描述,灵活性很高。

画图工具能导出一个个 .svg 文件,SVG 的导入方法和图片类似,既可以像下面这样在 CSS 中直接使用:

body {
 background-image: url(./svgs/activity.svg);
}

也可以在 HTML 中使用:

<img src="./svgs/activity.svg"/>

也就是说可以直接把 SVG 文件当成一张图片来使用,方法和使用图片时完全一样。 所以在3-19 加载图片 中介绍的两种方法 使用 file-loader 和 使用 url-loader 对 SVG 来说同样有效,只需要把 Loader test 配置中的文件后缀改成 .svg ,代码如下:

module.exports = {
 module: {
  rules: [
   {
    test: /\.svg/,
    use: ['file-loader']
   }
  ]
 },
};

由于 SVG 是文本格式的文件,除了以上两种方法外还有其它方法,下面来一一说明。

使用 raw-loader

使用 svg-inline-loader

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Windows Live的@live.com域名注册漏洞 利用代码
Dec 27 Javascript
Javascript日期对象的dateAdd与dateDiff方法
Nov 18 Javascript
javascript 日期常用的方法
Nov 11 Javascript
JS定时器实例详细分析
Oct 11 Javascript
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
Oct 17 Javascript
JavaScript 实现打印,打印预览,打印设置
Dec 30 Javascript
jQuery鼠标经过方形图片切换成圆边效果代码分享
Aug 20 Javascript
日常收集整理的JavaScript常用函数方法
Dec 10 Javascript
JS实现根据文件字节数返回文件大小的方法
Aug 02 Javascript
bootstrap输入框组件使用方法详解
Jan 19 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
Jan 20 Javascript
Jquery ajax书写方法代码实例解析
Jun 12 jQuery
vue学习教程之带你一步步详细解析vue-cli
Dec 26 #Javascript
基于vue-cli配置lib-flexible + rem实现移动端自适应
Dec 26 #Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
Dec 26 #Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
Dec 26 #Javascript
AngularJS实现的根据数量与单价计算总价功能示例
Dec 26 #Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
Dec 26 #Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
Dec 26 #Javascript
You might like
简单的移动设备检测PHP脚本代码
2011/02/19 PHP
9个比较实用的php代码片段
2016/03/15 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
PHP常用的类封装小结【4个工具类】
2019/06/28 PHP
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
验证javascript中Object和Function的关系的三段简单代码
2010/06/27 Javascript
EASYUI TREEGRID异步加载数据实现方法
2012/08/22 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
删除节点的jquery代码
2014/01/13 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
CKEditor4配置与开发详细中文说明文档
2018/10/08 Javascript
vue实现搜索过滤效果
2019/05/28 Javascript
Vue多环境代理配置方法思路详解
2019/06/21 Javascript
ES6实现图片切换特效代码
2020/01/14 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
2020/02/12 Javascript
浅谈vue 组件中的setInterval方法和window的不同
2020/07/30 Javascript
[02:33]2018DOTA2亚洲邀请赛赛前采访——LGD
2018/04/04 DOTA
Django基于ORM操作数据库的方法详解
2018/03/27 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
python3.7环境下安装Anaconda的教程图解
2019/09/10 Python
python实现tail -f 功能
2020/01/17 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
2020/03/17 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
几个SQL的面试题
2014/03/08 面试题
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
为什么要使用servlet
2016/01/17 面试题
医学院护理专业应届生求职信
2013/11/12 职场文书
环保建议书300字
2014/05/14 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
redis连接被拒绝的解决方案
2021/04/12 Redis
Python time库的时间时钟处理
2021/05/02 Python