# @enformik/cli 中文文档

规范地址：https://npmcn.com/package/%40enformik/cli/

版本：1\.0\.0
npm 元数据更新时间：2026-11-13T16:41:48.711Z
中文译文更新时间：2026-11-13T18:29:26.951Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：143 kB，20 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=20
- 运行依赖：0 个
- 首次发布：2026-10-21T08:02:39.516Z
- 最新版本发布：2026-11-13T16:41:48.412Z
- 近 30 天下载量：3177（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：18（近 12 个月 18 个）

## 中文简介

Enformik CLI用于CI管道和离线工具:网站部署,模块(schema)提议,本地的表单验证和打出客户端生成.

## 安装

```sh
npm install @enformik/cli
```

也可以使用：`pnpm add @enformik/cli`、`yarn add @enformik/cli`、`bun add @enformik/cli`

## README

# 翻译:

用于 **CI 管道** 财务报告和审定财务报表 **离线工具**: 发表 **网站** 你建造,发送 **应用程序模块(schema)** 用于管理员审批的更改,验证本地显示并生成一个打入的客户端。 它没有运行时间依赖关系(Node.js ~ 20).

```bash
npx @enformik/cli --help
# or install it permanently:
npm install -g @enformik/cli   # command: enformik
```

在自己的机器上与AI代理合作(开发一个模块,查看应用程序的结构,发布到一个开发站点)通过 **远程 MCP 服务器** `https://mcp.enformik.com/mcp`:您将您的AI客户端连接到它,并在控制台上批准. CLI没有个人签注,也没有在你的机器上存储证书.

## CI 全权证书

按先后次序排列:

1.  **CI连接(建议,没有存储的秘密).** 在控制台为寄存器创建 CI 连接( 您的应用程序 ) **CI 连接**)和设置 `ENFORMIK_CI_RULE` 其编号。 CLI从CI提供商那里取取该工作的OIDC身份,交换地址为: `ENFORMIK_OAUTH_URL` 最多15分钟的纪念品,只保留在记忆中:
    -   **GitHub 动作 :** 任务需要 `permissions: id-token: write` (CLI读作: `ACTIONS_ID_TOKEN_REQUEST_URL` 编号 : `ACTIONS_ID_TOKEN_REQUEST_TOKEN`) (中文(简体) ).
    -   **GitLab CI/CD: (英语)** 定义 `ENFORMIK_ID_TOKEN` 下级 `id_tokens` 与 `aud` 供听众使用`ENFORMIK_AUDIENCE`默认值 `https://oauth.enformik.com`) (中文(简体) ).
    -   **Bitbucket 管道 :** 添加 `oidc: true` (和观众在 `oidc.audiences`)到该步骤;CLI读作 `BITBUCKET_STEP_OIDC_TOKEN`。 。 。 .
    -   需要站点命令 `ENFORMIK_ENVIRONMENT` (网站环境 id; 如果连接目标为单个网站, 可选); 计划命令需要 `ENFORMIK_APP` (应用程序 id) 并使用连接的工作空间, 除非 `ENFORMIK_WORKSPACE` 已经设定.
    -   GitLab 工作 / Bitbucket 步骤的身份符可以交换 **只有一次**: 运行一个 Enformik 命令,每个任务(或步)都需要证书. GitHub 每一次交换都会发布一个新的身份标志.
2.  **现成的CI标志:** `ENFORMIK_SITE_TOKEN` 编号 : `ENFORMIK_APP_TOKEN`,当工作自己完成交换时(控制台的 CI 连接示例这样做).
3.  **无 OIDC 的 CI 退后( 如 Jenkins) :** `ENFORMIK_DEPLOY_KEY` (网站;控制台:开发者站点-部署密钥,有效期最长为90天)和 `ENFORMIK_CLIENT_ID` + 键 `ENFORMIK_CLIENT_SECRET` (应用程序; 控制台: 您的应用程序 ; API 访问; 角色) **Schema 升级器**,或 **Schema 构建器** (第一台安装).

地址: `ENFORMIK_CONSOLE_URL` (现场命令)和 `ENFORMIK_APP_URL` (司马令.

```yaml
# GitHub Actions
permissions: { id-token: write, contents: read }
steps:
  - uses: actions/checkout@v4
  - run: npm ci && npm run build
  - run: npx @enformik/cli@1 site deploy --dir dist
    env:
      ENFORMIK_CI_RULE: <CI connection id>
      ENFORMIK_ENVIRONMENT: <website environment id>
      ENFORMIK_CONSOLE_URL: https://console.enformik.com
```

`enformik whoami` 显示哪个证书达到了哪个目标(呼叫类、规则、拥有者、目标、范围、过期;如果有退后证书,它就这么说)。 它在本地解码CI标志 只用于诊断 并打印无秘密.

## 场地部署

所需经费: **开发者网站** 必须在 Enformik 管理控制台中启用您的网站环境.

```bash
npx @enformik/cli site deploy --dir dist
```

诸如是否 `index.html` 位于根上,是否有隐藏文件(`.env`, (中文(简体) ), `.git`文件类型是否允许(可执行, `.zip`编号 :`.iso` 没有扩展名的文件被拒绝),是否检查大小/配位 **上传前**; 错误随文件路径显示。 如果捆绑中的文本文件包含一个秘密, 上传会停止; 您可以通过在其中列出文件来跳过一个错误的提醒 `.enformikignore` 在工程根中(每行一条路径, `dir/` 前缀,无通配符). `--expect-host <site-host>` 防止部署到错误的地点。 成功后,将打印新版的地址.

## Schema(模块)变化

```bash
npx @enformik/cli schema validate --manifest module.json        # local, no credentials
npx @enformik/cli schema install --manifest module.json --yes   # first installation (--dry-run: show only)
npx @enformik/cli schema diff --manifest module.json --check    # exit code 2 if there are changes
npx @enformik/cli schema push --manifest module.json --yes
```

> **警告:** 模块变化影响 **所有工作空间** 在申请中.

**每次更改都交给管理员审批.** `schema install` 财务报告和审定财务报表 `schema push` 不应用:整个清单作为提案保存,只有在管理员在应用程序(Modules-Protoces)中批准后才生效。 与署长作用的CI联系和API客户不能批准提案。 将角色,访问规则和脚本保留在出货单上;不要把它们分开. 检查结果为 `enformik schema status`。 。 。 .

`schema validate` 本地运行,无证书或网络:JSON, `module.slug`编号 :`module.version`,而各科管理员将密切审查(`adminSections`) (中文(简体) ). MCP 工具检查服务器自身的规则( 命名、 结构) `schema_validate`,或 `schema diff` 在中央情报局.

## 图标

| 命令 | 说明 |
| --- | --- |
| `schema validate` | 在当地验证清单(没有证书,没有网络; `--seed-data`(中文(简体) ) |
| `codegen` | 生成 TypeScript 类型和输入的数据客户端 `module.json` (单位:千美元)`--out`, (中文(简体) ), `--check`(中文(简体) ) |
| `schema diff` | 将表与申请表中的表作比较( E)`--check`(中文(简体) ) |
| `schema install` | 发送模块的首次安装供管理员批准( S)`--dry-run`, (中文(简体) ), `--yes`; 角色: Schema 构建器) |
| `schema push` | 发送更改供管理员批准( E)`--yes` 在非互动环境中需要) |
| `schema status` | 显示您上次发送的更改状态: 待决、 应用、 拒绝、 停滞或失败 |
| `site deploy` | 公布已建网站(`--dir`, (中文(简体) ), `--no-wait`, (中文(简体) ), `--timeout`, (中文(简体) ), `--expect-host`(中文(简体) ) |
| `site status` | 显示目标站点和现场发布( E)`--expect-host`(中文(简体) ) |
| `whoami` | CI诊断:证明达到何种目标(无秘密) |

运行 `enformik <command> --help` 对于命令的使用。 错误的命令( E)`enformik sitee --help`)是一个错误,而不是一般的帮助.

全球旗帜 : `--json`, (中文(简体) ), `--config`, (中文(简体) ), `--debug`, (中文(简体) ), `-h`编号 :`--help`, (中文(简体) ), `-v`编号 :`--version`目标旗帜 : `--console-url`, (中文(简体) ), `--app-url`, (中文(简体) ), `--workspace` (覆盖环境变量).

`--expect-host <host>` 如果主机名称不同, 则停止操作: 在计划命令中, 它就是 **应用程序的** 主机, 单位 `site deploy` 财务报告和审定财务报表 `site status` 页:1 **网站的** 主持人.

## 退出代码

| 代码 | 含义 |
| --- | --- |
| `0` | 成功(包括无操作人员, `--dry-run` 财务报告和审定财务报表 `--no-wait`(中文(简体) ) |
| `1` | 错误: 输入、 验证、 证书、 拒绝的 CI 令牌交换、 服务器错误、 部署失败、 拒绝确认( 关闭的输入计数为 "否" ) 、 速率限制 |
| `2` | 没有错误 : `schema diff --check` 找到要应用的更改,或 `codegen --check` 发现文件已过时 |

## JSON 输出

与 `--json`搭载 **仅限** JSON(人可读取的文本去stderr),因此管道可以解析. 错误是 JSON 对象 `error` (稳定的代码)和 `message`,例如 `unknown_command` (带有 `hint` 以一个已废除的命令发誓, `usage`, (中文(简体) ), `no_credentials`, (中文(简体) ), `ci_rule_denied`, (中文(简体) ), `ci_identity_missing`, (中文(简体) ), `rate_limited` (与 `status: 429` 当服务器发送一个, `retryAfterSeconds`; CLI 不自行重试429)或 `unexpected`。一些命令将失败的结果报告为正常结果(拒绝的确认是 `applied: false`,失败或被拒绝的部署是 `deployed: false` 与 `status`, (中文(简体) ), `error` 或者说 `issues`); 在所有情况下,退出代码都是 `1`,所以在退出代码上的分支先读 `error` 再来.

## 环境变量

| 变量 | 用于 |
| --- | --- |
| `ENFORMIK_CI_RULE` | CI connection id: CLI 将工作 OIDC 身份交换为短命符 |
| `ENFORMIK_OAUTH_URL` | Enformik 令牌服务( 默认) `https://oauth.enformik.com`(中文(简体) ) |
| `ENFORMIK_AUDIENCE` | CI 提供者身份标志的观众( 默认 ): `ENFORMIK_OAUTH_URL`(中文(简体) ) |
| `ENFORMIK_ENVIRONMENT` | 网站环境 ID( 有 CI 令牌的站点命令) |
| `ENFORMIK_APP` | 应用程序 id( 有 CI 连接的schema 命令) |
| `ENFORMIK_WORKSPACE` | 工作空间 id( 否则 CI 连接的工作空间, 或是应用程序的默认) |
| `ENFORMIK_SITE_TOKEN`, (中文(简体) ), `ENFORMIK_APP_TOKEN` | 现成的CI标志(工作本身是交换的) |
| `ENFORMIK_CONSOLE_URL`, (中文(简体) ), `ENFORMIK_DEPLOY_KEY` | 控制台地址( 站点命令); 后退部署密钥 |
| `ENFORMIK_APP_URL`, (中文(简体) ), `ENFORMIK_CLIENT_ID`, (中文(简体) ), `ENFORMIK_CLIENT_SECRET` | 应用程序地址( schema 命令); 倒置 API 客户端 |
| `ENFORMIK_ID_TOKEN` | GitLab: 任务的身份标志( 定义于 `id_tokens`(中文(简体) ) |
| `ENFORMIK_LANG` | `tr` 以土耳其语显示服务器提供的部署消息( 默认: 英语) |

优先是旗帜,然后是环境变量. 从旗子或配置文件中不会读出机密 .

`.enformik/config.json` (承诺存放)只持有项目布局: `module.slug`, (中文(简体) ), `module.manifest`, (中文(简体) ), `site.dir`, (中文(简体) ), `codegen.out`里面没有地址也没有秘密.

## 升级到1.0

1.0是一个破解放出:CLI现在只用于CI和离线工具.

-   删除的命令 : `auth login|status|logout`, (中文(简体) ), `env list|use|current|forget`, (中文(简体) ), `link`, (中文(简体) ), `ai init`, (中文(简体) ), `app check` 财务报告和审定财务报表 `mcp`。使用远程 MCP 服务器(`https://mcp.enformik.com/mcp`在自己的机器上; `app check` 这是它的 `app_check` 工具 和指南 `docs_*` 工具。 这个 `@enformik/mcp` 软件包已中止.
-   删除了: 证书文件( R)`~/.config/enformik/credentials.json`)和项目装订(`.enformik/local.json`);你可以删除它们。 全权证书 `env use` 被撤销.
-   删除了旗帜和变量 : `--env` 编号 : `ENFORMIK_ENV`, (中文(简体) ), `--docs-url` 编号 : `ENFORMIK_DOCS_URL`, (中文(简体) ), `ENFORMIK_NO_STORED_CREDENTIALS`, (中文(简体) ), `ENFORMIK_CONFIG_DIR`,以及 `schema validate --profile` 编号 : `--offline` (认证总是本地现在).
-   已重命名 : `ENFORMIK_WORKSPACE_ID` → `ENFORMIK_WORKSPACE` (旧名打印出警告并被忽略).
-   `.enformik/config.json` 不再读 `consoleUrl`, (中文(简体) ), `appUrl` 或者说 `workspaceId` (一个要使用的变量的警告名称).
-   新建: CI 连接( N)`ENFORMIK_CI_RULE`),现成的CI代币(`ENFORMIK_SITE_TOKEN`, (中文(简体) ), `ENFORMIK_APP_TOKEN`(三); `whoami` 描述 CI 符号 .
-   部署密钥的有效期为90天;较长的密钥被缩短为90天.

## 警卫

-   机密从来不从命令行旗或项目文件读取(a) `.enformik/config.json` 他们只来自环境变量.
-   CI符号只保存在内存中;它们从未被写入磁盘或打印.
-   全权证书仅通过HTTPS发送(但 `localhost`;不遵循重定向.

详细指南:Enformik开发者文档中的"CLI"一页.

## 常见问题

### @enformik/cli 是什么？

Enformik CLI用于CI管道和离线工具:网站部署,模块\(schema\)提议,本地的表单验证和打出客户端生成\.

### 如何安装 @enformik/cli？

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

### @enformik/cli 支持 TypeScript 吗？

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

### @enformik/cli 支持 ESM 还是 CommonJS？

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

### @enformik/cli 需要什么版本的 Node\.js？

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

### @enformik/cli 可以商用吗？

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

### @enformik/cli 的下载量有多少？

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

### @enformik/cli 还在维护吗？

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

