详解node字体压缩插件font-spider的用法


Posted in Javascript onSeptember 28, 2018

需求:

根据甲方要求,使用UI中指定字体

移动端默认显示系统默认字体,非系统默认字体需要自行引入字体包

字体包过大,字体包通常在几MB,严重拖累页面加载速度

分析:

文本内容为固定内容,不需要更新

文本内容大多为常用文字,大多文字用不上

插件:

font-spider
node 安装插件方法:npm install font-spider -g

操作:

安装插件

提取项目文字:
创建一个临时html,将所有项目需要用到的文本放到html中

在htmnl中写入样式代码,举个栗子:

@font-face {
  font-family: 'myfont';
  src: url('./common/assets/font/myfont.ttf');
}
* {
  font-family: 'myfont';
}

在命令提示窗口中,将目录展开到html所在的目录,输入指令:font-spider *.html 即可将该目录下所有html的字体抽离打包。

注意:

如果页面文本内容需要经常更新

如果需要对input表单内容同样应用定制字体请放弃本文章所述方法,可以考虑通过服务端渲染,动态生成字体包,或者,老老实实将完整的字体包引入页面

Javascript 相关文章推荐
善用事件代理,警惕闭包的性能陷阱。
Jan 20 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
Jan 11 Javascript
JavaScript String.replace函数参数实例说明
Jun 06 Javascript
jQuery制作简洁的多级联动Select下拉框
Dec 23 Javascript
scrollWidth,clientWidth,offsetWidth的区别
Jan 13 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
Dec 04 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
Dec 26 Javascript
JavaScript 动态三角函数实例详解
Jan 08 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
Jun 05 Javascript
js实现单张图片平移切换效果
Oct 11 Javascript
vue2.0 如何在hash模式下实现微信分享
Jan 22 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
Nov 11 Javascript
JS canvas绘制五子棋的棋盘
May 28 #Javascript
在vue中解决提示警告 for循环报错的方法
Sep 28 #Javascript
H5+C3+JS实现五子棋游戏(AI篇)
May 28 #Javascript
解决微信小程序防止无法回到主页的问题
Sep 28 #Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
Sep 28 #Javascript
H5+C3+JS实现双人对战五子棋游戏(UI篇)
May 28 #Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
Sep 28 #Javascript
You might like
ThinkPHP采用模块和操作分析
2011/04/18 PHP
php函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
Js实现手机发送验证码时按钮延迟操作
2014/06/20 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
详解Javascript模板引擎mustache.js
2016/01/20 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
vue实现微信二次分享以及自定义分享的示例
2019/03/20 Javascript
[03:02]生活中的Dendi之野外度假篇
2016/08/09 DOTA
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
python控制台中实现进度条功能
2015/11/10 Python
结合Python的SimpleHTTPServer源码来解析socket通信
2016/06/27 Python
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
2017/12/19 Python
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
Django教程笔记之中间件middleware详解
2018/08/01 Python
python的pstuil模块使用方法总结
2019/07/26 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
2019/08/05 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
tf.concat中axis的含义与使用详解
2020/02/07 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
2020/03/25 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
css背景图片的背景裁切、背景透明度、背景变换等效果运用
2012/12/24 HTML / CSS
基于CSS3特效之动画:animation的应用
2013/05/09 HTML / CSS
html5简介及新增功能介绍
2020/05/18 HTML / CSS
英国鞋类及配饰零售商:Kurt Geiger
2017/02/04 全球购物
关于随地扔垃圾的检讨书
2014/09/30 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
2015年八一建军节慰问信
2015/03/23 职场文书
预备党员群众意见
2015/06/01 职场文书
2015年六年级班主任工作总结
2015/10/15 职场文书
JavaScript 防篡改对象的用法示例
2021/04/24 Javascript
拒绝盗图!教你怎么用python给图片加水印
2021/06/04 Python