临近下班,ui靓仔邪魅一笑,甩给了我一个字体文件,说我们app需要更换一下字体文件,以前的字体文件现在收费了,看了看时间17:57分那一刻我明白,免费蹭水电费的机会来了。
我们的app是react-native做的,展示数字的地方是使用DINAlternateBold字体,这一次也主要是改这个字体,打开项目想着直接把字体文件换一下就行了,结果发现新的字体文件102kb老字体文件75kb?这一刻,我发现并不是所有的东西我都喜欢大的,why???不就几个数字吗,为什么这么大?
那就先看看字体里面都有什么把?双击ui给我的ttf文件,点击安装
再打开windows自带的
字符映射表找到刚刚安装的字体,发现
这一大堆都是我不要的阿,我不要这么大的,我只要我能掌控的大小就行了。
那怎么把多余的字去掉呢?这里介绍一个简单的方法
fontmin
新建一个文件夹,命名为font,打开cmd输入:
npm install --save fontmin
新建一个index.js文件
const Fontmin = require('fontmin');
const fontmin = new Fontmin()
.src('BarlowSemiCondensed-SemiBold.ttf')
.dest('./fonts').use(Fontmin.glyph({
text: '0123456789',
hinting: false
}))
fontmin.run(function (err, files) {
if (err) {
throw err;
}
console.log(files[0]);
});
然后打开cmd,执行
node index.js
打开我们的fonts文件夹,里面的字体文件就是我们提取出来的了,看看大小
嗯,5kb,小了很多了
卸载之前的老字体,重新安装提取之后的字体再使用字符映射表看看
嗯,只剩我想要的0-9数字了!场景有限,使用了最简单的处理方式,我记得这个东西还有webpack插件,可以少量配置然后动态提取,但是我没有试过,有用过的小伙伴可以互相交流!
没事的话,先下班?