# @bare-ts/tools 中文文档

规范地址：https://npmcn.com/package/%40bare-ts/tools/

版本：0\.19\.0
npm 元数据更新时间：2026-01-26T22:58:09.686Z
中文译文更新时间：2026-11-07T16:57:25.209Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40bare-ts/tools
原文对照：https://npmcn.com/package/%40bare-ts/tools/?lang=original
项目主页：https://baremessages.org/
源码仓库：https://github.com/bare-ts/bare

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

- 包体积（解压后）：109 kB，31 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=20\.19\.0
- 运行依赖：0 个
- peer 依赖：@bare-ts/lib \>=0\.5\.0，typescript \>=5\.7\.0
- 首次发布：2022-01-03T23:03:08.238Z
- 最新版本发布：2026-01-26T22:58:09.368Z
- 近 30 天下载量：11008（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：22（近 12 个月 1 个）

## 中文简介

二进制应用记录编码( BARE) 计划汇编器

## 安装

```sh
npm install @bare-ts/tools
```

也可以使用：`pnpm add @bare-ts/tools`、`yarn add @bare-ts/tools`、`bun add @bare-ts/tools`

## README

[![bare-ts](https://npmcn.com/package/%40bare-ts/tools/logo.svg)](https://npmcn.com/package/%40bare-ts/tools/#readme-bare-ts)

A 类 _类型脚本_ 该代码生成器 _常规_ 二进制格式

[![NPM package](https://flat.badgen.net/npm/v/@bare-ts/tools)](https://www.npmjs.com/package/@bare-ts/tools) [![bundle size - minified and gzipped](https://img.shields.io/badge/dynamic/json?style=flat-square&label=minzipped&query=$.size.compressedSize&url=https://deno.bundlejs.com/?q=@bare-ts/tools)](https://bundlejs.com/?q=%40bare-ts%2Ftools) [![Coverage](https://flat.badgen.net/coveralls/c/github/bare-ts/bare)](https://coveralls.io/github/bare-ts/bare?branch=main)

[二进制应用程序记录编码](https://baremessages.org/) (单位:千美元)_常规_)是一个基于二进制的策略 格式,有利于紧凑和可容性. _@ bare- ts/ 工具_ 提供生成的编译器 _字体_ 财务报告和审定财务报表 _Java 脚本_ 代码从 a _常规_ 计划.

警告: _常规_ 规格目前是 _电子论坛_ 草案. 规格现在相当稳定. 然而,在最后释放之前,它可能仍在演变.

## 开始

[![@bare-ts/tools NPM version](https://flat.badgen.net/npm/v/@bare-ts/tools?label=npm:@bare-ts/tools)](https://www.npmjs.com/package/@bare-ts/tools) [![@bare-ts/lib NPM version](https://flat.badgen.net/npm/v/@bare-ts/lib?label=npm:@bare-ts/lib)](https://www.npmjs.com/package/@bare-ts/lib)

首先,安装 _@ bare- ts/ 工具_ 财务报告和审定财务报表 _@bare-ts/lib (英语)_数字 :

```sh
npm install --save-dev @bare-ts/tools
npm install @bare-ts/lib
```

-   _@ bare- ts/ 工具_ 能够从一个计划生成解码器和编码器
    
-   _@bare-ts/lib (英语)_ 提供基本的解码器和编码器
    

也可以下载捆绑和可执行版本 _@ bare- ts/ 工具_ 名称 `bare` 本节 _资产_ 总数 [打开 _GitHub 图像_](https://github.com/bare-ts/tools/releases)。 。 。 .

然后,写一个计划:

```zig
type Gender enum {
    FEMALE
    FLUID
    MALE
}

type Person struct {
    name: str
    email: str
    gender: optional<Gender>
}

type Organization struct {
    name: str
    email: str
}

type Contact union { Person | Organization }

type Contacts list<Contact>
```

将您的计划编入代码 :

```sh
bare schema.bare --out=code.ts
```

一旦生成代码, 编码和解码消息 :

```ts
import { Gender, decodeContacts, encodeContacts } from "./code.js"
import { strict } from "node:assert"

const contacts = [
    {
        tag: "Person",
        val: {
            name: "Seldon",
            email: "seldon@foundation.org",
            gender: Gender.Male,
        },
    },
]

const payload = encodeContacts(contacts)
const contacts2 = decodeContacts(payload)

strict.deepEqual(contacts, contacts2)
```

参考我们 [`types` 文档页面](https://npmcn.com/package/%40bare-ts/tools/docs/types.md) 查找 BARE 类型和 TypeScript 类型之间的对应关系,以及一些 CLI 选项对此的影响.

## 为什么是BARE?

**压缩消息**: 相对 _贝森_, (中文(简体) ), _边境保护局_,以及 _邮件包_, (中文(简体) ), _常规_ 信件不嵌入计划信息.

**可能时可进行生物编码**: BARE值大多具有单一的二进制表示. 这使得消息分解等使用案例的支持更容易.

**关注现代平台**:信息是octet-accessed并使用小endian代表.

**简单**: 相对 _协议缓冲_ 财务报告和审定财务报表 _平缓_, (中文(简体) ), _常规_ 并不限制它的二进制格式,以支持计划进化. _协议缓冲_ 在每个消息中嵌入元数据,使每个字段都具有可选性. _常规_ 建议使用被标记的结合作为消息类型支持后向兼容性.

## 为什么光着身子?

**实用错误报告**数字 : _光线_ 区分可收回错误和API误用. 解码器可能发出可恢复的错误(`BareError`),并提供足够的信息来理解信息为何不正确. API 误用释放出 `AssertionError`。 。 。 . `AssertionError` 只在 `development` [出口条件](https://nodejs.org/api/cli.html#-c-condition---conditionscondition) 设置或何时 `NODE_ENV` 环境变量设定为 `development`。 。 。 . 此外, _光线_ 假设使用 TypeScript 可以减少 API 误用次数来检查.

**优化捆绑大小**数字 : _光线_ 采用功能和程序编程风格. 这有利于利用现代技术 _消除已死密码_ 技术,例如 _树摇_。 。 。 . 使用捆绑器,例如 _环境建设_, (中文(简体) ), _滚动_,或 _网络软件包_,您的捆绑只包含实际使用的函数.

**生成高效代码** _光线_ 注意生成现代JavaScript引擎可能优化的代码.

## 常见问题

### @bare-ts/tools 是什么？

二进制应用记录编码\( BARE\) 计划汇编器

### 如何安装 @bare-ts/tools？

在项目目录运行 npm install @bare-ts/tools，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@bare-ts/lib（\>=0\.5\.0）、typescript（\>=5\.7\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。它还提供命令行工具 bare，可以用 npx bare 直接运行。

### @bare-ts/tools 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/bare-ts\_\_tools 是否存在。

### @bare-ts/tools 支持 ESM 还是 CommonJS？

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

### @bare-ts/tools 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=20\.19\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @bare-ts/tools 可以商用吗？

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

### @bare-ts/tools 的下载量有多少？

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

### @bare-ts/tools 还在维护吗？

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

