为什么需要
做出海产品,前端做多语言排版时 CJK、阿拉伯文、表情、变音符号的尺寸测量一直是大坑。用 getBoundingClientRect、offsetHeight 这类 DOM API 测量,每次都触发浏览器 reflow——一个页面上百次测量下来帧率直接掉到 10fps 以下。Pretext 把文本测量做成纯算法,毫秒级出结果,不碰 DOM。
对做多语言 SaaS、跨境电商、独立产品的开发者来说:接入简单(npm install pretext),输出维度支持 DOM、Canvas、SVG,未来还要支持服务端渲染。文档完善,TypeScript 类型齐全,MIT 开源。
怎么用
bash
npm install pretext
ts
import { Layout } from 'pretext';
const layout = new Layout({maxLines: 3});
const lines = layout.layout("Hello, 世界! 🌍 العربية", {font: '16px Inter'});
适用场景:聊天气泡自动换行、PPT 演示文稿生成、设计工具的文本框、图表标签自适应、PDF 生成预览。
注意事项
- MIT 协议,完全免费
- 纯 JS/TS 库,浏览器和 Node.js 通用
- 比传统 DOM 测量快几个数量级,无 reflow 副作用
- 已支持 100+ 语言(CJK、阿拉伯文、希伯来文、表情、变音符号等)