详解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 相关文章推荐
javascript弹出层输入框(示例代码)
Dec 11 Javascript
JavaScript修改css样式style动态改变元素样式
Dec 16 Javascript
JS记录用户登录次数实现代码
Jan 15 Javascript
jQuery中:gt选择器用法实例
Dec 29 Javascript
拥Bootstrap入怀——导航栏篇
May 30 Javascript
jquery+ajax实现直接提交表单实例分析
Jun 17 Javascript
Bootstrap缩略图与警告框学习使用
Feb 08 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
Jun 09 Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
Feb 23 Javascript
Vue项目添加动态浏览器头部title的方法
Jul 11 Javascript
Vue+element-ui 实现表格的分页功能示例
Aug 18 Javascript
vue实现省市区联动 element-china-area-data插件
Apr 22 Vue.js
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
php中的filesystem文件系统函数介绍及使用示例
2014/02/13 PHP
PHP输出缓存ob系列函数详解
2014/03/11 PHP
摘自织梦CMS的HTTP文件下载类
2015/08/08 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
jquery 防止表单重复提交代码
2010/01/21 Javascript
javascript+xml实现简单图片轮换(只支持IE)
2012/12/23 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
JavaScript Promise 用法
2016/06/14 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
记一次用ts+vuecli4重构项目的实现
2020/05/21 Javascript
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
深入解析Python中的变量和赋值运算符
2015/10/12 Python
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
python 产生token及token验证的方法
2018/12/26 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
2019/08/30 Python
PyQt5多线程刷新界面防假死示例
2019/12/13 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
python两个list[]相加的实现方法
2020/09/23 Python
阿迪达斯香港官网:adidas香港
2019/11/09 全球购物
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
Java如何读取CLOB字段
2013/10/10 面试题
办公室前台岗位职责范本
2013/12/10 职场文书
幼儿园保育员辞职信
2014/01/12 职场文书
平安工地汇报材料
2014/08/19 职场文书
咖啡厅商业计划书
2014/09/15 职场文书
春晚观后感
2015/06/11 职场文书
海底两万里读书笔记
2015/06/26 职场文书
2019年幼儿园家长接送责任书
2019/10/29 职场文书
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android