# @abaplint/transpiler-cli 中文文档

规范地址：https://npmcn.com/package/%40abaplint/transpiler-cli/

版本：2\.14\.18
npm 元数据更新时间：2026-11-06T10:59:25.985Z
中文译文更新时间：2026-11-05T19:27:17.754Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40abaplint/transpiler-cli
原文对照：https://npmcn.com/package/%40abaplint/transpiler-cli/?lang=original
项目主页：https://github.com/abaplint/transpiler#readme
源码仓库：https://github.com/abaplint/transpiler

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

- 包体积（解压后）：7.4 MB，7 个文件
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2020-09-26T11:27:58.106Z
- 最新版本发布：2026-11-06T10:59:25.803Z
- 近 30 天下载量：38024（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：1429（近 12 个月 146 个）

## 中文简介

Transpiller - 命令行接口

## 安装

```sh
npm install @abaplint/transpiler-cli
```

也可以使用：`pnpm add @abaplint/transpiler-cli`、`yarn add @abaplint/transpiler-cli`、`bun add @abaplint/transpiler-cli`

## README

# @abaplint/ transpiller-cli (英语)

转接器 CLI

## 实例

打电话 `abap_transpile` 在命令行上,请参见示例

[https://github.com/larshp/abap-advent-2020/blob/main/package.json#L8 (中文(简体) )](https://github.com/larshp/abap-advent-2020/blob/main/package.json#L8)

重复复合型构造器的共享工厂功能由 默认。 每一次工厂呼叫都会产生新鲜的ABAP值. 保留内线 构造器输出, 设定 `options.sharedTypeFactories` 改为 `false` 内 `abap_transpile.json`数字 :

```json
{
  "options": {
    "sharedTypeFactories": false
  }
}
```

关闭选项或设置为 `true` 使用共享工厂.

## 输出布局

CLI 将生成的项目文件写入 `output_folder/project/`全部数据 `input_folder` 条目属于同一项目,包括一系列源 文件夹。 原始的ABAP源保留在其输入目录中.

每个 ABAP 库都有自己的文件夹 `output_folder`文件夹名称为 寄存器基名来源 `url` (没有后面的斜线或 `.git`),或 基本名称 `folder` 仅供本地图书馆使用。 设定 `libs[].name` 以覆盖它 :

```json
{
  "input_folder": ["src", "extra"],
  "output_folder": "output",
  "incremental_output": true,
  "libs": [
    {"url": "https://github.com/open-abap/open-abap-core"},
    {"folder": "./deps/utilities", "name": "utilities"}
  ],
  "write_unit_tests": true,
  "write_source_map": true,
  "options": {"addCommonJS": true}
}
```

```text
output/
  init.mjs
  _init.mjs
  _top.mjs
  index.mjs
  _unit_open.mjs
  project/
    zapp.prog.mjs
    zapp.prog.mjs.map
  open-abap-core/
    ...
  utilities/
    ...
```

名称必须是Windows和POSIX上有效的单一目录名称. 名称是 独一无二,不考虑案件 `project` 预留。 冲突衍生 名称需要明确 `libs[].name`。跨库复制 ABAP 对象 默认拒绝; 项目对象将替换同类型/同名的库对象.

本地类、测试类、函数组、MIME数据以及 源地图跟随他们自己的对象. 原始地图包括ABAP原始内容, 包括从临时 Git 取出中装入的库; 它们使用稳定 库合格路径,不披露临时取出位置. 导入和注册的 MIME 文件名参考新路径 .

共享初始化脚本和测试跑取器仍为输出根. 运行程序 `node output/project/zapp.prog.mjs`; 运行项目单位测试 与 `node output/index.mjs`。从平面输出移出时,重建清洁 生成输出目录并更新引用个人的脚本 模块或资产.

设定 `incremental_output` 改为 `true` ,替换 更改已生成的文件,并删除已记录的已过期文件 `output/.abap-transpile-manifest.json`。 CLI 保存它没有保存的文件 生成,包括自定义设置脚本和其他用户数据。 现有产出 从启用此选项之前的运行中没有所有权目录; 做一个 采用删除遗留的 stale 文件的选项时清除构建 。 设定 选项到 `false` (默认)恢复无条件写作。 文件 已禁用时生成的不添加到目录中.

该清单在解剖学上得到更新,如果运行,则保留作为恢复援助 失败。 这并不能使整个输出树进行交易. 使用一个 每个输出目录的转接程序.

转接器库保留平面输出,除非其调用器提供输出 文件夹映射为第三个参数 `Transpiler.run()`启用此布局 自动通过 CLI.

## 固定一个库

一个图书馆,由 `url` 当 CLI 运行时被克隆,所以没有更多的 使用该刻度的默认分支, 而同一工程承诺可以构建 不一样的一天到第二天。 设定 `libs[].ref` 承诺SHA,标签 或使建筑可复制的分支:

```json
{
  "libs": [
    {"url": "https://github.com/open-abap/open-abap-core", "ref": "239b817e6fd05e62854fed25663f002c60dda07c"},
    {"url": "https://github.com/example/utilities", "ref": "v1.2.0"}
  ]
}
```

分支或标记被克隆为浅. 犯罪被轻取出名 服务器不为它服务,或者 SHA 缩写为,完整的历史是 取出并检查了承诺。 CLI 打印每个 库,它复制,和每一个 `folder` 是一个 git 退出的库, 如 `commit: <sha>` 在文件数旁边,所以一个构建的约定可以是 记录.

## 重复的依赖关系

默认情况下, 两个库定义相同的 ABAP 对象( 类型和名称) 原因 a 一个 `Ambiguous dependency object` 错误。 保留现有的依赖性储存库 并跳过以后的复制件,将此顶级选项设置在 `abap_transpile.json`数字 :

```json
{
  "skip_duplicate_dependencies": true
}
```

第一个图书馆 `libs` 包含对象的胜负。 每一个文件 后置库中的对象被跳过,包括元数据、类本地数据,以及 二进制资产。 CLI 警告每个库中每个跳过的对象一次,命名 选定的库。 导入、输出文件夹和源地图使用选中的 copy. 项目对象仍然优先于依赖,并共享 `package.devc.xml` 元数据保持其现有的行为.

库命令现在影响生成的输出 。 不同的定义可以改变 DDIC 类型、可用方法和运行时行为,或导致语法错误 代码等待被跳过版本。 此选项不检查副本是否为 等同或压制语法检查。 将预定提供者放在首位 运行您的应用程序的测试。 用于选择性控制,使用 `libs[].exclude_filter` 只排除想要的对象的文件。 与 `incremental_output` 启用, 更改提供者会删除清单中跟踪的过时文件 . 在遗留模式下更改提供者时使用干净生成的输出目录 或当未跟踪到的陈旧产出仍然来自早先的建筑.

## 常见问题

### @abaplint/transpiler-cli 是什么？

Transpiller - 命令行接口

### 如何安装 @abaplint/transpiler-cli？

在项目目录运行 npm install @abaplint/transpiler-cli，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 abap\_transpile，可以用 npx abap\_transpile 直接运行。

### @abaplint/transpiler-cli 支持 TypeScript 吗？

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

### @abaplint/transpiler-cli 可以商用吗？

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

### @abaplint/transpiler-cli 的下载量有多少？

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

### @abaplint/transpiler-cli 还在维护吗？

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

