unifont 是 unjs 生态中的字体解析工具,用于从不同提供方获取字体并返回字体面数据。主要能力:通过 createUnifont 初始化,使用 providers.google()、providers.npm() 等提供方解析字体;resolveFont() 支持 formats 过滤(默认 ['woff2'])、subsets 子集过滤、按字重请求,以及通过 options 传入提供方专属选项(如 google 的 experimental.glyphs 按字符子集化以减小体积);listFonts() 列出可用字体族;throwOnError 可在初始化或解析失败时抛错。用法示例:const unifont = await createUnifont([providers.google()], { storage: createStorage({ driver: fsDriver({ base: 'node_modules/.cache/unifont' }) }) }),再调用 unifont.resolveFont('Poppins', { subsets: ['latin'] })。npm 提供方(v0.7.4 新增)可从本地或远程 npm 包解析字体,配合 readFile 与 remote: false 实现本地优先。限制与注意:默认缓存为内存,冷启动会重新获取,建议接入 unstorage 持久化;默认子集较多,建议显式限制;自定义提供方需将提供方选项纳入缓存键(可用 ohash 的 hash()),并注意并发解析可能触发提供方重复初始化。resolveFontFace() 已在 v0.7.0 移除,改用 resolveFont()。其余细节暂未提供。
unjs-unifont
测试与质量
更新于 10-16 02:33