# @0xproject/abi-gen 中文文档

规范地址：https://npmcn.com/package/%400xproject/abi-gen/

版本：1\.0\.13
npm 元数据更新时间：2022-07-19T23:15:36.397Z
中文译文更新时间：2026-11-06T19:13:57.835Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%400xproject/abi-gen
原文对照：https://npmcn.com/package/%400xproject/abi-gen/?lang=original
项目主页：https://github.com/0xProject/0x-monorepo/packages/abi-gen/README.md
源码仓库：https://github.com/0xProject/0x-monorepo

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

- 包体积（解压后）：54.2 kB，30 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=6\.12
- 运行依赖：12 个
- 首次发布：2017-12-08T21:17:05.685Z
- 最新版本发布：2018-10-04T22:52:23.730Z
- 近 30 天下载量：2435（2026-10-04 至 2026-11-02，npm 官方下载统计）
- 已发布版本数：44（近 12 个月 0 个）

## 中文简介

从ABI和手柄栏模板生成合同包装

## 安装

```sh
npm install @0xproject/abi-gen
```

也可以使用：`pnpm add @0xproject/abi-gen`、`yarn add @0xproject/abi-gen`、`bun add @0xproject/abi-gen`

## README

# ABI 源词

此软件包允许您从 ABI 文件生成 TypeScript 合同包 . 它的灵感很大 [Geth 双子体](https://github.com/ethereum/go-ethereum/wiki/Native-DApps:-Go-bindings-to-Ethereum-contracts) 但采取不同的做法. 您可以编写您的自定义手提栏模板, 使您能够将生成的代码与现有的常规无缝地整合到您现有的代码库中 .

[给](https://github.com/0xProject/0x-monorepo/tree/development/packages/0x.js/contract_templates) 是用来生成 0x.js.e 所使用的合同包装的模板

## 安装

`yarn add -g @0xproject/abi-gen`

## 使用量

```
abi-gen
Options:
  --help               Show help                                       [boolean]
  --version            Show version number                             [boolean]
  --abis               Glob pattern to search for ABI JSON files
                                                             [string] [required]
  --output, -o, --out  Folder where to put the output files  [string] [required]
  --partials           Glob pattern for the partial template files      [string]
  --template           Path for the main template file that will be used to
                       generate each contract                [string] [required]
  --backend            The backing Ethereum library your app uses. Either 'web3'
                       or 'ethers'. Ethers auto-converts small ints to numbers
                       whereas Web3 doesn't.
                          [string] [choices: "web3", "ethers"] [default: "web3"]
  --network-id         ID of the network where contract ABIs are nested in
                       artifacts                          [number] [default: 50]
```

你必须通过一个 [阴影](https://en.wikipedia.org/wiki/Glob_\(programming\)) 您的 abi 文件所在的模板. TL; DR - 这是0x.js的示例.

`--abis 'src/artifacts/@(Exchange|Token|TokenTransferProxy|EtherToken|TokenRegistry).json`

我们可以用 `--abis 'src/artifacts/*.json` 但我们想排除一些abi文件.

ABI 文件应该是 [旋转](http://truffleframework.com/) 合同文物(带有ABI键的JSON对象)或JSON abi阵列.

您还需要指定每个合同所使用的主模板的位置 `--template` 以及部分模板 `--partials` 以后可以从主机上使用.

## 如何写自定义模板 ?

最好的开始方法是复制 [0x.js 模板](https://github.com/0xProject/0x-monorepo/tree/development/packages/contract_templates) 并开始调整 满足你的需要. 我们用 [手柄栏](http://handlebarsjs.com/) 引擎盖下的模板引擎. 您需要使用主模板 `contract.mustache`。它将用来生成每个合同包装。 尽管 - 你不需要,而且也许不应该将你的逻辑全部写入一个模板文件. 你可以写 [部分模板](http://handlebarsjs.com/partials.html) 只要它们位于一个部分文件夹内,它们就会被登记和提供.

## 我的模板中有哪些数据/内容?

现在,你没有得到很多的方法 ABI,一些有用的帮助 和一个合同名称,因为它已经足够 我们的使用案例, 但如果你需要别的东西 - 创建一个公关. 见 [类型定义](https://github.com/0xProject/0x-monorepo/tree/development/packages/abi-gen/src/types.ts) 我们所传递的.

## 输出文件

输出文件将在一个输出文件夹内生成,名称被转换为骆驼案,取自abi文件名. 如果您的文件夹中已经有一些文件, 它们将被覆盖 .

## 捐款

我们欢迎更广泛的社会作出改进和修正! 要在此包中报告错误, 请在此寄存器中创建一个问题 .

请读我们的 [捐款准则](https://npmcn.com/package/CONTRIBUTING.md) 在开始之前.

### 安装依赖关系

如果您没有启用纱线工作空间( Yarn < v1.0) - 启用它们 :

```bash
yarn config set workspaces-experimental true
```

然后安装依赖关系

```bash
yarn install
```

### 构建

要构建此软件包和它所依赖的所有其他单列波软件包,请从单列波根目录中运行以下内容:

```bash
PKG=@0xproject/abi-gen yarn build
```

或在变化中不断重建:

```bash
PKG=@0xproject/abi-gen yarn watch
```

### 干净

```bash
yarn clean
```

### 林特

```bash
yarn lint
```

## 常见问题

### @0xproject/abi-gen 是什么？

从ABI和手柄栏模板生成合同包装

### 如何安装 @0xproject/abi-gen？

在项目目录运行 npm install @0xproject/abi-gen，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 abi-gen，可以用 npx abi-gen 直接运行。

### @0xproject/abi-gen 支持 TypeScript 吗？

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

### @0xproject/abi-gen 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @0xproject/abi-gen 需要什么版本的 Node\.js？

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

### @0xproject/abi-gen 可以商用吗？

@0xproject/abi-gen 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @0xproject/abi-gen 的下载量有多少？

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

### @0xproject/abi-gen 还在维护吗？

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

