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.
https://chinese-font.netlify.app/
Apache License 2.0
442 stars 15 forks source link

修复: 无法在 node v21.5.0 中工作 #40

Closed jynxio closed 8 months ago

jynxio commented 8 months ago

描述

关于 Node.js 的测试用例无法工作。

Terminal 将会“打印出「分包失败」关键字”,./packages/subsets/temp/node 文件夹中没有出现任何子集化的字体文件。

bun v1.0.20 和 deno v1.39.1 均可正常工作。

重现

  1. 拉取最新的官方仓库
  2. 执行 pnpm i
  3. 进入 ./packages/subsets 目录
  4. 执行 pnpm test:node

环境


解决

font-converter.node.ts 的返回值明确的转换为 Uint8Array 实例即可。

为什么转换为 Uint8Array?1)font-converter.node.ts 中的 convert 的其中一种返回值就是 Uint8Array 实例;2)convertTTFToWOFF2Async 方法的 源码 的返回值(JsBuffer)在 Node.js 中即以 Uint8Array 的形式存在;

KonghaYao commented 8 months ago

ts 分支最新版本和 4.11.1 版本修复了这个问题。 我本地的 18 没有问题,估计是 21 版本对二进制的某些解析做了改动