H5前端特殊艺术字体文件太大,可通过font-spider压缩
原理:
1.爬行本地 html 文档,分析所有 css 语句
2.记录@font-face语句声明的字体,并且记录使用该字体的 css 选择器
3.通过 css 选择器的规则查找当前 html 文档的节点,记录节点上的文本
4.找到字体文件并删除没被使用的字符
5.编码成跨平台使用的字体格式
简而言之:就是爬出你项目中所使用的文字保留起来,删除没被使用到的文字,并重新打包。
该如何使用字蛛?
一、安装node.js
如果没有node,请安装安装node.js(这里不做详细介绍,可自行百度)。如果已经安装请看下一步。
二、安装字蛛
有vscode编辑器的可以在项目文件夹中打开终端,输入npm install font-spider -g
也可以打开Node.js command prompt如下图所示,并输入命令:npm install font-spider -g 回车执行
npm install font-spider -g
下图显示安装成功:有一点报错,不影响使用
三、使用字蛛
1、新建一个font.html页面,下面是font.html中的内容。要根据自己文件夹中有的字体去引入,但是ttf格式的字体是一定要存在的。
注意:
- @font-face 中的 src 定义的 .ttf 文件必须存在,其余的格式将由工具自动生成。
- 开发阶段请使用相对路径的 CSS 与 WebFont
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> /*声明 WebFont*/ @font-face { font-family: 'YaHeiBold'; src: url('./YaHeiBold.eot'); src: url('./YaHeiBold.eot?#font-spider') format('embedded-opentype'), url('./YaHeiBold.woff2') format('woff2'), url('./YaHeiBold.woff') format('woff'), url('./YaHeiBold.ttf') format('truetype'), url('./YaHeiBold.svg') format('svg'); font-weight: normal; font-style: normal; } </style> </head> <body> </body> </html>
2、html文件构建好后,在终端输入font-spider + 你的font.html的位置,然后回车即可。
font-spider ./demo/*.html 页面依赖的字体将会自动压缩好,原 .ttf 字体会备份
3、有可能你会出现报错,像下图这样的。出现这样情况就是font.html中的字体路径错了。
4、压缩成功后会自动生成.font-spider文件夹,可以看到原来的字体体积已经小了很多。前面的对比图就是效果。
5、最后一步,在css中引入已经压缩好的字体就行。