# @atlowchemi/webfont-generator 中文文档

规范地址：https://npmcn.com/package/%40atlowchemi/webfont-generator/

版本：0\.10\.0
npm 元数据更新时间：2026-10-19T11:13:02.430Z
中文译文更新时间：2026-11-07T03:11:09.042Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40atlowchemi/webfont-generator
原文对照：https://npmcn.com/package/%40atlowchemi/webfont-generator/?lang=original
项目主页：https://atlowchemi.github.io/vite-svg-2-webfont/webfont-generator/
源码仓库：https://github.com/atlowChemi/vite-svg-2-webfont

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

- 包体积（解压后）：86.9 kB，13 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2026-04-14T12:01:19.508Z
- 最新版本发布：2026-10-19T11:13:02.034Z
- 近 30 天下载量：7503（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：14（近 12 个月 14 个）

## 中文简介

暂无中文简介

## 安装

```sh
npm install @atlowchemi/webfont-generator
```

也可以使用：`pnpm add @atlowchemi/webfont-generator`、`yarn add @atlowchemi/webfont-generator`、`bun add @atlowchemi/webfont-generator`

## README

# @atlowchemi/webfont-生成器

![webfont-generator logo](https://npmcn.com/package/%40atlowchemi/docs/public/webfont-generator-logo.png)

[![npm](https://img.shields.io/npm/v/@atlowchemi/webfont-generator.svg?style=flat-square)](https://www.npmjs.com/package/@atlowchemi/webfont-generator) [![license](https://img.shields.io/github/license/atlowChemi/vite-svg-2-webfont.svg?style=flat-square)](https://github.com/atlowChemi/vite-svg-2-webfont/blob/master/LICENSE)

土生土长 [国家行动计划](https://napi.rs/) 添加从一组SVG图标文件中生成webfonts(SVG,TTF,EOT,WOFF,WOFF2)及其相伴的CSS/HTML.

添加器选择 Rust 引擎的 `fs` 能力(包括所需 `async` ),其中引擎默认值被禁用. 货物特性选择为内部 adton; npm 消费者使用此处所记录的基于文件的JavaScript API. 原生WOFF压缩使用引擎的静态zlib后端. 递增成果也支持单一文件 `add`, (中文(简体) ), `update`,以及 `remove` 无助手 转会成员,加 `addAsync`编号 :`updateAsync`编号 :`removeAsync` 返回替换结果. 见 [单文件动作](https://atlowchemi.github.io/vite-svg-2-webfont/webfont-generator/node#single-file-actions)。 。 。 . 对于浏览器应用程序,使用 `@atlowchemi/webfont-browser-generator`,该船预编 WASM,在工人中经营SVG文本生成.

这是重新编剧 [`@vusion/webfonts-generator`](https://github.com/vusion/webfonts-generator) 在"Rust"中——最初的软件包及其作者值得称赞的是这个项目所依赖的API设计和模板系统. 联合来文的执行没有持续进行,因此,这个一揽子方案在本土重新实施同样的管道,以提高业绩和长期维持能力.

API基本上与 `@vusion/webfonts-generator`,但有一些差异:

-   这个 `cssContext` 财务报告和审定财务报表 `htmlContext` 调用只接收上下文对象。 原稿也通过了 `options` 编辑 `handlebars` 这些论点已经不复存在.
-   `formatOptions` 现在严格输入为 `{ svg?: SvgFormatOptions; ttf?: TtfFormatOptions; woff?: WoffFormatOptions; woff2?: Woff2FormatOptions }`。最初接受的任意性 `{ [format]: unknown }`; 数据 `eot` 键不再被接受(EOT来自TTF输出).
-   一个新的 `optimizeOutput` 选项在组合字体之前将 SVG 路径优化到每个格片上。 默认为 `false`;优化可能减少SVG路径数据,但不保证较小的二进制字体输出,因此比较您输入集生成的大小. 也可用 `formatOptions.svg.optimizeOutput`。 。 。 .
-   `formatOptions.woff2.compressionQuality` 为 WOFF2 输出设置 Brotli 压缩质量 (0–11) 。 默认为 `11` (产出最小); 降低(例如: `10`)用于以边际尺寸成本进行更快的编码.
-   一个新的 `incremental` 选项(默认) `false`)保留关于结果的解析甘油数据,以便 `result.regenerateAsync(files, changes?)` 可以在文件更改后重建,而无需重新解析没有更改或屏蔽节点.js事件循环的glyphs. 它刷新了记忆中的产出,当产生结果时 `writeFiles`,将刷新过的字体写入磁盘,同时跳过不变的 CSS/HTML 配套文件。 您通过完整文件集( 按新构建使用的顺序) 加上变化, 或省略 `changes` 重读/重打整集并推断变化;结果与新鲜的字节相同 `generateWebfonts()` 包括增加部分.
-   生成的字体二进制(TTF,WOFF等)在字节级别上可能有所不同,因为使用了不同的编码器,但字体同样有效.
-   CSS,HTML,和模板输出完全相同.
-   一个新的 `variants` 选项支持具有离散设计的多重量家庭.
-   一个新的 [`colorGlyphs`](https://atlowchemi.github.io/vite-svg-2-webfont/webfont-generator/node#color-selection) 选项为 TTF 、 WOFF 和 WOFF2 中选定的格子保留固态 SVG 颜色.
-   [`colorSlots`](https://atlowchemi.github.io/vite-svg-2-webfont/webfont-generator/node#colorslots),例如 `{ secondary: '#ff9900' }`,保留 CSS 轻/暗主题的调色板条目。 需要活动 `colorGlyphs`; 槽使用不同的 `#RRGGBB` 颜色和 ASCII 字母数字/连字符/分数名称。 索引遵循 ASCII 名称顺序,并在 CSS 上下文中被曝光 `colorSlots` 地图。 见 [现场实例](https://atlowchemi.github.io/vite-svg-2-webfont/examples#theme-colors-in-one-glyph)。 。 。 .

与甘油计数相比,性能尺度更好——对于更大的图标设置本地管线来说,速度要快得多.

## 安装和使用

```bash
npm install @atlowchemi/webfont-generator
```

以下平台上的消费者不需要"Rust"或"Cargo". 保持可选的依赖性 启用后, 您的软件包管理器将安装匹配的本地二进制 .

| 平台 | 建筑 |
| --- | --- |
| 马科斯 | x64, 武装64 |
| Linux (滑动) | x64, arm64, armv7 (英语) |
| Linux( 穆斯尔 ) | x64, 武装64 |
| 视窗 (MSVC) | x64, 武装64 |

```js
import { generateWebfonts } from '@atlowchemi/webfont-generator';

const result = await generateWebfonts({
    files: ['./icons/home.svg', './icons/search.svg'],
    dest: './dist/fonts',
    fontName: 'my-icons',
    types: ['woff2', 'woff'],
});

const css = result.generateCss();
const html = result.generateHtml();
```

## 递增再生

多体重家庭也支持逐步建设。 设定 `incremental: true`,然后使用 `regenerateAsync({ variants: [{ variant: 'bold', files: [...] }, ...] }, changes)` 与每个配置的设计完整的文件列表。 奥米 `changes` 重新调整每个设计。 见 [变量再生参考](https://atlowchemi.github.io/vite-svg-2-webfont/webfont-generator/node#variant-regeneration) 用于输入形状、同步替代和失败语义.

```js
let files = ['./icons/home.svg', './icons/search.svg'];
let result = await generateWebfonts({ files, dest, fontName: 'my-icons', incremental: true });

// On a watch event, rebuild reusing cached geometry for unchanged glyphs. Pass the full file set
// (in fresh-build order) so additions land in the right position, plus what changed:
result = await result.regenerateAsync({ files }, [{ path: './icons/home.svg', changeType: 'changed' }]);
// Or omit changes when watcher hints are unavailable/untrusted:
result = await result.regenerateAsync({ files });
result.woff2; // refreshed bytes
```

第一个参数是更改后设置的完整文件,按照一个新构建会使用的顺序(如您 glob results)——任何从它中省去的文件都会被删除. 每个变化是 `{ path, changeType: 'added' | 'changed' | 'removed', name? }`时 `name` 是解析的 glyph 名称, 如果您应用了自定义重命名; 否则添加的文件会从文件干中获取其名称, 更改的文件会保留其当前名称, 并删除的文件会忽略它 。 何时 `changes` 删除或 `null`,每个当前文件都会被重读和散列,并自动推断变化. `regenerateAsync()` 返回替换结果;在工作进行期间和失败后,接收器可读且保持不变。 在开始另一起重建之前指定替换,因为来自同一结果分界线的重叠电话被拒绝。 磁盘写的不是交易式的 。 同步而变异 `regenerate()` 当屏蔽事件回路为可接受时,方法仍然可用。 所产生的结果 `cssContext` 或者说 `htmlContext` 调用无法重生成, 因为这些 JavaScript 调用无法在重建期间重运行 .

## 模板

默认 CSS、 SCSS 和 HTML 模板可通过 `/templates` 导出 :

```js
import * as templates from '@atlowchemi/webfont-generator/templates';

console.log(templates.css); // path to default CSS template
console.log(templates.scss); // path to default SCSS template
console.log(templates.html); // path to default HTML template
```

## 文档

见 [节点.js 参考](https://atlowchemi.github.io/vite-svg-2-webfont/webfont-generator/node) 为完整的API. 关于直接Rust或命令行的使用,请参见单独的 [引擎边框](https://npmcn.com/package/crates/webfont-generator)。 。 。 .

## 许可证

[麻省理工学院](https://npmcn.com/package/LICENSE)

## 常见问题

### 如何安装 @atlowchemi/webfont-generator？

在项目目录运行 npm install @atlowchemi/webfont-generator，或使用 pnpm add / yarn add / bun add。

### @atlowchemi/webfont-generator 支持 TypeScript 吗？

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

### @atlowchemi/webfont-generator 支持 ESM 还是 CommonJS？

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

### @atlowchemi/webfont-generator 可以商用吗？

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

### @atlowchemi/webfont-generator 的下载量有多少？

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

### @atlowchemi/webfont-generator 还在维护吗？

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

