KonghaYao / cn-font-split

划时代的字体切割工具,CJK与任何字符!支持 otf、ttf、woff2 字体多线程切割,完美地细颗粒度地进行包大小控制。A revolutionary font subetter that supports CJK and any characters! It enables multi-threaded subset of otf, ttf, and woff2 fonts, allowing for precise control over package size.

Home Page:https://chinese-font.netlify.app/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[拆包失败] node 环境下报错

RylanBot opened this issue · comments

node 20 直接运行以下代码

import { fontSplit } from '@konghayao/cn-font-split';

fontSplit({
    FontPath: './myFont.ttf',
    destFold: './build',
    chunkSize: 70 * 1024,
    testHTML: true,
    reporter: true,
    threads: {},
    css: {},
    renameOutputFont: '[hash:10][ext]',
});

报错如下,且 build目录没有生成任何东西

可以提供一下您的 cn-font-split 版本,机器平台信息和源字体包吗

可以提供一下您的 cn-font-split 版本,机器平台信息和源字体包吗

唔,我尝试了分包,发现是 opentype.js 代码中的问题,它没有办法识别一些特殊 cmap 导致 bug 了,我先尝试修复一波

@konghayao/cn-font-split
4.11.2 版本中更新了 opentype.js 的依赖,我这边成功分包了,请您测试一下

@konghayao/cn-font-split 4.11.2 版本中更新了 opentype.js 的依赖,我这边成功分包了,请您测试一下

感谢!解决了,可以正常运行。
话说是否考虑进一步优化压缩?虽然我不太了解具体原理。
我之前使用一些在线工具,比如这个:https://ucece.com/ttf2woffs
把我的整个 tff文件(5MB+)转为 woff2 后,只剩下 2MB+。
使用您的分包,它的总体积只变到 4MB+。

这个压缩问题的话,我们使用的是 Google 的 woff2 WASM 版本,压缩功能是一致的。
猜测由于字体的设计方式采用太多的位点的话,分包压缩就呈现压缩率下降了。
不过大多数时候,50% 左右的分包都是处于不会被加载的状态。
这个问题会持续观察滴。