← 工具

pretext

纯 JavaScript/TypeScript 库,毫秒级精确测量多语言文本尺寸并完成排版。支持 DOM、Canvas、SVG 输出,无需触发浏览器 reflow,性能比传统 DOM 测量快几个数量级,前端国际化产品排版必备工具,GitHub 49K+ Stars。

#21
推荐排名
49,554
GitHub Stars
45,094
推荐得分
多语言文本测量 / 前端排版
适用场景
开发工具前端TypeScript开发

为什么需要

做出海产品,前端做多语言排版时 CJK、阿拉伯文、表情、变音符号的尺寸测量一直是大坑。用 getBoundingClientRectoffsetHeight 这类 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、阿拉伯文、希伯来文、表情、变音符号等)