# @altano/satori-fit-text 中文文档

规范地址：https://npmcn.com/package/%40altano/satori-fit-text/

版本：3\.1\.0
npm 元数据更新时间：2026-10-15T06:11:15.044Z
中文译文更新时间：2026-11-06T02:00:26.541Z
软件包许可：ISC

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40altano/satori-fit-text
原文对照：https://npmcn.com/package/%40altano/satori-fit-text/?lang=original
项目主页：https://github.com/altano/npm-packages/tree/main/packages/satori-fit-text
源码仓库：https://github.com/altano/npm-packages

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：776 kB，21 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：4 个
- peer 依赖：@types/react 19\.x\.x
- 首次发布：2023-08-31T02:51:01.477Z
- 最新版本发布：2026-10-15T06:11:14.685Z
- 近 30 天下载量：6792（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：14（近 12 个月 3 个）

## 中文简介

将文本匹配到节点或浏览器中的边框

## 安装

```sh
npm install @altano/satori-fit-text
```

也可以使用：`pnpm add @altano/satori-fit-text`、`yarn add @altano/satori-fit-text`、`bun add @altano/satori-fit-text`

## README

# 缩写文字

计算符合边框的最大文本字体大小,而不使用网页浏览器。 到处都行 [佐织](https://github.com/vercel/satori) does,例如Node.js,网页浏览器,Vercel边缘运行时间等.

![Demo](https://npmcn.com/package/%40altano/satori-fit-text/assets/demo.gif)

## 安装

```sh
# Using NPM
npm install @altano/satori-fit-text
# Using Yarn
yarn add @altano/satori-fit-text
# Using PNPM
pnpm add @altano/satori-fit-text
```

## 基本示例

```ts
import { findLargestUsableFontSize, type Font } from "@altano/satori-fit-text";

async function getInter(): Promise<Font> {
  const interSemiBoldBuffer = await fetch(
    `https://cdn.jsdelivr.net/npm/@fontsource/inter@5.0.17/files/inter-latin-600-normal.woff`,
  ).then((res) => res.arrayBuffer());

  return {
    name: "Inter",
    data: interSemiBoldBuffer,
    weight: 600,
  };
}

const largestUsableFontSize = await findLargestUsableFontSize({
  lineHeight: 1,
  font: await getInter(),
  text: "Some text I want to be as big as possible",
  maxWidth: 1136,
  maxHeight: 429,
});

console.log(largestUsableFontSize);
```

## 示例用途

### 密码沙盒

-   [有控件的游戏场](https://codesandbox.io/p/sandbox/github/altano/npm-packages/tree/main/examples/satori-fit-text-playground?file=%2Fpackage.json%3A1%2C1)
-   [反应组件](https://codesandbox.io/s/altano-satori-fit-text-browser-example-j2gvk6)
-   [节点.js CLI App](https://codesandbox.io/p/sandbox/github/altano/npm-packages/tree/main/examples/satori-fit-text-node-cli?file=%2Fpackage.json%3A1%2C1)
-   [下一张.js 打开图形卡 - 简单](https://codesandbox.io/p/sandbox/altano-satori-fit-text-next-js-demo-sv4flc)

### 代码

-   [Next.js 打开图形卡 - 复数](https://github.com/altano/alan.norbauer.com/blob/main/src/components/opengraph/image.tsx#L29-L35)

## 执行情况

库会尝试各种字体大小,直到找到最理想的可行字体. 每个迭代都通过生成带有佐藤里的SVG并计算出SVG的边框来测试.

## 业绩

字体大小搜索是在 1 到 1000 之间的二进制搜索 `O(log maxFontSize-minFontSize)` 运行时间,或默认 `O(log 1000)`。可以通过缩小搜索空间之间的差值来提高性能 `minFontSize` 财务报告和审定财务报表 `maxFontSize`,减少了猜测的数量.

如果你在做类似制作Open Graph卡片的事 那你可能就不用担心表现了.

## 常见问题

### @altano/satori-fit-text 是什么？

将文本匹配到节点或浏览器中的边框

### 如何安装 @altano/satori-fit-text？

在项目目录运行 npm install @altano/satori-fit-text，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@types/react（19\.x\.x）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @altano/satori-fit-text 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @altano/satori-fit-text 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @altano/satori-fit-text 可以商用吗？

@altano/satori-fit-text 使用 ISC 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @altano/satori-fit-text 的下载量有多少？

根据 npm 官方下载统计，@altano/satori-fit-text 在 2026/10/06 – 2026/11/04 这 30 天内被下载 6,792 次，日均约 226 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @altano/satori-fit-text 还在维护吗？

最新版本 3\.1\.0 发布于 2026/10/15（23 天前）；至今共发布 14 个版本，其中过去 12 个月发布了 3 个；首次发布于 2023/08/31。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

