# @dataform/cli 中文文档

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

版本：3\.1\.5
npm 元数据更新时间：2026-11-10T14:15:37.675Z
中文译文更新时间：2026-11-11T14:31:07.206Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40dataform/cli
原文对照：https://npmcn.com/package/%40dataform/cli/?lang=original
项目主页：https://github.com/dataform-co/dataform

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

- 包体积（解压后）：5 MB，4 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：23 个
- 首次发布：2018-09-19T12:13:25.929Z
- 最新版本发布：2026-11-10T14:15:37.375Z
- 近 30 天下载量：440709（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：321（近 12 个月 41 个）

## 中文简介

Dataform命令行接口.

## 安装

```sh
npm install @dataform/cli
```

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

## README

# 数据格式 CLI 参考

本文件是本报告的完整参考 `dataform` 命令行接口。 命令列表, 使用行和参数/ 选项表来自此寄存器中的 CLI 源(`cli/`),所以它们匹配 `dataform help`也涵盖实际案例.

概念文档(项目结构、SQLX语法、JavaScript API等)见 [根读取器](https://npmcn.com/package/%40dataform/readme.md) 和东道主 [数据窗体 CLI 指南](https://cloud.google.com/dataform/docs/use-dataform-cli)。 。 。 .

## 安装

```bash
npm i -g @dataform/cli
```

## 召集

```
dataform <command> [project-dir] [options]
```

`project-dir` 每个命令和默认值可选 `.` (当前目录). 以平地扩张解决,所以 `~/my-project` 工作时. `project-dir` 可以通过任何一种姿势(`dataform compile my-project`)或作为被命名的旗帜 (`dataform compile --project-dir=my-project`) (中文(简体) ).

运行 `dataform` 没有争论,或 `dataform help`,打印命令列表。 运行 `dataform help <command>` 或者说 `dataform <command> --help` 为命令的全旗列表.

## 全球行为

-   **`--help`** —— 显示当前命令的帮助 .
-   **`--version`** ——打印已安装的 `@dataform/cli` 版本号.
-   **严格解析** ——未知的命令或旗帜被错误地拒绝,而CLI为打字建议了最接近匹配的命令名.
-   **彩色输出** ——产出默认为彩色. 设定 `NO_COLOR=1` (或 `true`编号 :`yes`要禁用它 .
-   **线性调试日志** 设置 `DATAFORM_LINEAGE_DEBUG=1` 以启用 OpenLineage 发射器的动词记录 `run --emit-lineage`。 。 。 .

## 图标

-   [`init`](https://npmcn.com/package/%40dataform/cli/#readme-init)
-   [`install`](https://npmcn.com/package/%40dataform/cli/#readme-install)
-   [`init-creds`](https://npmcn.com/package/%40dataform/cli/#readme-init-creds)
-   [`compile`](https://npmcn.com/package/%40dataform/cli/#readme-compile)
-   [`test`](https://npmcn.com/package/%40dataform/cli/#readme-test)
-   [`run`](https://npmcn.com/package/%40dataform/cli/#readme-run)
-   [`format`](https://npmcn.com/package/%40dataform/cli/#readme-format)

* * *

### `init`

```
dataform init [project-dir] [default-database] [default-location]
```

创建新的数据窗体项目( E)`workflow_settings.yaml`, (中文(简体) ), `.gitignore`, (中文(简体) ), `definitions/`,以及 `includes/`(单位:千美元) `project-dir`失败,如果 `workflow_settings.yaml`, (中文(简体) ), `package.json`,或 `dataform.json` 已存在于 `project-dir`。 。 。 .

**立场参数**

| 参数 | 需求 | 说明 |
| --- | --- | --- |
| `project-dir` | 否( 默认) `.`(中文(简体) ) | Dataform 项目目录. |
| `default-database` | **对** | 要使用的默认数据库,相当于谷歌云项目ID. |
| `default-location` | 没有 | 要使用的默认位置( 可选) 。 如果省略,“默认地址”不写为“工作流程设置”。 改为使用\`.df-creditifics.json'的\`位置 ' ;如果同样未确定,大查询会动态选择位置。 见 [https://cloud.google.com/bigquery/docs/ 地盘](https://cloud.google.com/bigquery/docs/locations) 用于支持的值. |
|  |  |  |

`project-dir` 是创建工程的目录。 所有三种立场论据也可被作为被命名的旗帜传入(`--project-dir`, (中文(简体) ), `--default-database`, (中文(简体) ), `--default-location`),例如. `dataform init my_project --default-database=my-gcp-project-id --default-location=US`。 。 。 .

**选项**

| 旗帜 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `--iceberg` | 布尔 | `false` | 以工作流程级别Iceberg表格配置来初始化项目. |
|  |  |  |  |

何时 `--iceberg` 已经设定, `init` 以交互方式提示 Iceberg 桶名称、 表格文件夹根/ 子路径和连接 .

* * *

### `install`

```
dataform install [project-dir]
```

安装项目对国家预防机制的依赖(通过 `npm i --ignore-scripts`项目申报的 `package.json`。 。 。 .

**立场参数**

| 参数 | 需求 | 说明 |
| --- | --- | --- |
| `project-dir` | 否( 默认) `.`(中文(简体) ) | Dataform 项目目录. |
|  |  |  |

**选项**

无.

> 注:用于指定项目 `dataformCoreVersion` 内 `workflow_settings.yaml`, (中文(简体) ), `@dataform/core` 在编译/运行时自动安装在一个孤立的临时目录中,并运行 `dataform install` 丢出出错( e)`No installation is needed when using workflow_settings.yaml, as packages are installed at runtime.`) (中文(简体) ). 使用 `dataform install` 仅在管理时 `@dataform/core` 和外部依赖关系 `package.json` (无) `dataformCoreVersion` 内 `workflow_settings.yaml`) (中文(简体) ).

* * *

### `init-creds`

```
dataform init-creds [project-dir]
```

交互式创建 `.df-credentials.json` 文件输入 `project-dir` dataform 用于连接到 BigQuery. **目前只支持 BigQuery .**

提示:

1.  数据集位置( O)`US`, (中文(简体) ), `EU`,自定义区域名称,或 `auto`) (中文(简体) ). 选择 `auto` 叶子 `location` 退出证书文件, 所以大查询会动态选择位置 .
2.  认证方法——应用程序默认证书(ADC)或JSON服务账户密钥文件.
    -   ADC: 提示您的计费项目 ID .
    -   JSON 密钥: 下载服务账户密钥文件的路径提示 .
3.  要冒充的服务账户( 可选的, 按 Enter 以跳过) 。 保存为 `impersonateServiceAccount`,参见 [全权证书文件](https://npmcn.com/package/%40dataform/cli/#readme-credentials-file)。 。 。 .

**立场参数**

| 参数 | 需求 | 说明 |
| --- | --- | --- |
| `project-dir` | 否( 默认) `.`(中文(简体) ) | Dataform 项目目录. |
|  |  |  |

**选项**

| 旗帜 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `--test-connection` | 布尔 | `true` | 如果选中的话, 将会使用您的最终证书运行测试查询 . |
|  |  |  |  |

* * *

### `compile`

```
dataform compile [project-dir]
```

编译工程并打印汇编的依赖性图表摘要(或JSON / Graphviz DOT 表示),而不在您的仓库上执行。 可用于验证一个项目并检查其结构.

**立场参数**

| 参数 | 需求 | 说明 |
| --- | --- | --- |
| `project-dir` | 否( 默认) `.`(中文(简体) ) | Dataform 项目目录. |
|  |  |  |

**选项**

| 旗帜 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `--json` | 布尔 | `false` | 输出结果为JSON,而不是人可读文本. |
| `--dot` | 布尔 | `false` | A Graphviz DOT代表汇编项目。 与-json相互独占. |
| `--verbose` | 布尔 | `false` | 启用动词编译输出。 互相独占与 --quiet. |
| `--quiet` | 布尔 | `false` | 减去动词编译输出. 与-动词相互独占. |
| `--watch` | 布尔 | `false` | 监视工程目录,并在修改后重新编译. |
| `--timeout` | 字符串 | `'60s'` | 项目编译完成的期限,例如'1s','10m'. |
| `--output-actions` | 数组 | —— 说 | 过滤打印输出到这些动作( comma- 分离或可重复) 。 每个条目都是动作名或完全合格的数据库. schema.name目标. 整个项目仍被整理. |
| `--output-tags` | 数组 | —— 说 | 将打印输出过滤到使用其中任何标记的动作( comma- 分离或可重复) . |
| `--output-include-deps` | 布尔 | —— 说 | 在产出中还包括选定行动的上游依赖性。 需要 -- -- 输出行动或 -- -- 输出目标. |
| `--output-include-dependents` | 布尔 | —— 说 | 在产出中还包括选定动作的下游依附者. 需要 -- -- 输出行动或 -- -- 输出目标. |
| 项目配置覆盖 | —— 说 | —— 说 | 见 [共享项目配置旗](https://npmcn.com/package/%40dataform/cli/#readme-shared-project-config-flags)。 。 。 . |
|  |  |  |  |

**页:1**

-   `--json` 输出已编译的图表,不能与 `--dot`。 。 。 .
-   `--watch` 忽略 `node_modules`,重新编译出500ms的发音,并运行到被Ctrl+C中断.
-   `--output-actions`, (中文(简体) ), `--output-tags`, (中文(简体) ), `--output-include-deps` 财务报告和审定财务报表 `--output-include-dependents` 整个工程仍在编译. `--output-actions` 条目精确匹配( 无) `*` 通配符扩展).

* * *

### `test`

```
dataform test [project-dir]
```

汇编项目并进行单位测试(`type: "test"` 行动)反对"大查询".

**立场参数**

| 参数 | 需求 | 说明 |
| --- | --- | --- |
| `project-dir` | 否( 默认) `.`(中文(简体) ) | Dataform 项目目录. |
|  |  |  |

**选项**

| 旗帜 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `--credentials` | 字符串 | `.df-credentials.json` | 要使用的 JSON 文件路径 . |
| `--timeout` | 字符串 | `'60s'` | 项目编译完成的期限,例如'1s','10m'. |
| `--json` | 布尔 | `false` | 输出结果为JSON,而不是人可读文本. |
| 项目配置覆盖 | —— 说 | —— 说 | 见 [共享项目配置旗](https://npmcn.com/package/%40dataform/cli/#readme-shared-project-config-flags)。 。 。 . |
|  |  |  |  |

`--json` 输出测试结果为 JSON.

有代码的退出 `1` 如果任何测试失败,如果工程未能编译,或者没有找到单位测试. 输出 `0` 如果所有测试都通过.

* * *

### `run`

```
dataform run [project-dir]
```

编写并执行针对大查询的项目(或以 `--dry-run`) (中文(简体) ).

**立场参数**

| 参数 | 需求 | 说明 |
| --- | --- | --- |
| `project-dir` | 否( 默认) `.`(中文(简体) ) | Dataform 项目目录. |
|  |  |  |

**选项**

| 旗帜 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `--dry-run` | 布尔 | —— 说 | 用 BigQuery 验证运行的 SQL ,而不对仓库应用任何更改 . |
| `--run-tests` | 布尔 | —— 说 | 要求工程的单位测试在执行前通过; 如果任何测试失败, 则中止运行 . |
| `--action-retry-limit` | 编号 | `0` | 在失败时多次重复本能行动. |
| `--actions` | 数组 | —— 说 | 要运行的动作( 共分或可重复) 。 每个条目都是动作名或完全合格的数据库. 计划 名字目标. |
| `--tags` | 数组 | —— 说 | 过滤要运行的动作的标记( comma- 分离或可重复) . |
| `--include-deps` | 布尔 | —— 说 | 还对选定的行动进行上游依赖。 需要 -- 动作或 -- tags . |
| `--include-dependents` | 布尔 | —— 说 | 同时还负责选定行动的下游依附者。 需要 -- 动作或 -- tags . |
| `--full-refresh` | 布尔 | `false` | 强制增量表(除非有标记保护)从头重建. |
| `--credentials` | 字符串 | `.df-credentials.json` | 要使用的 JSON 文件路径 . |
| `--json` | 布尔 | `false` | 输出结果为JSON,而不是人可读文本. |
| `--timeout` | 字符串 | `'60s'` | 项目编译完成的期限,例如'1s','10m'. |
| `--execution-timeout` | 字符串 | —— 说 | 全程(编译+全部动作)的站点截止时间. 当飞机起火时,飞行中的行动被取消,待执行的行动被跳过。 默认关闭。 例子:"10m","2h". |
| `--jit-timeout` | 字符串 | —— 说 | Per-model JiT 编译工人超时. 每个JiT动作都得到自己的新最后期限,独立于 -- 执行- 超时. 未设置时,不应用按型号封顶并仅 --execution-timeout bounds JiT 工作. 例子:"30","2m". |
| `--job-prefix` | 字符串 | —— 说 | 在 BigQuery 工作ID 中添加一个额外的前缀,在窗体数据格式- <job-prefix>-中. |
| `--job-labels` | 字符串 | —— 说 | 逗号分隔的要添加到 BigQuery 工作的标签列表, 例如“ key1=val1, key2=val2 ” 。 也应用于单位测试使用-运行测试. 覆盖使用相同密钥的工作标签和表格标签. |
| `--emit-lineage` | 布尔 | —— 说 | 如果设置了, 则将 OpenLineage RunEvents 发送到 Knowledge Catalog Lineage , 用于每个已执行动作 。 覆盖工作流程 设置. yaml 线程。 指定时启用 。 见 [https://github.com/dataform-co/dataform/blob/main/docs/lineage.md (中文(简体) )](https://github.com/dataform-co/dataform/blob/main/docs/lineage.md)。 。 。 . |
| `--build-only` | 布尔 | `false` | 只构建执行图而不向 BigQuery 提交任何查询 。 JiT 动作没有编译 。 注意 -- 干- 运行和 -- 运行- 测试如果与 -- building- 合并, 将被忽略 . |
| 项目配置覆盖 | —— 说 | —— 说 | 见 [共享项目配置旗](https://npmcn.com/package/%40dataform/cli/#readme-shared-project-config-flags)。 。 。 . |
|  |  |  |  |

**页:1**

-   `--actions` 条目精确匹配 : `*` 通配符没有被扩展,一个匹配多个动作的赤色动作名是一个错误.
-   `--full-refresh` 只影响增量表;经常表和视图总是重建.
-   `--json` 输出运行结果为 JSON ,并且仅与 `--dry-run`; 平面 `run --json` 被拒绝.
-   `--timeout` 仅限于编译,而不是执行。 如果没有设置 `--execution-timeout`, (中文(简体) ), `run` 显示提醒您注意的提示.
-   `--job-labels` 覆盖 `defaultJobLabels`动作 `jobLabels` 图表 `labels` 用同样的钥匙.
-   `--emit-lineage` 需要数据行距 API (`datalineage.googleapis.com`)和 `roles/datalineage.producer` 角色; 对于配置和排除出错, 请参见 [数据行距指南](https://npmcn.com/package/%40dataform/docs/lineage.md)。 。 。 .

退出代码 : `0` 关于成功, `1` 如果编译失败,大查询工作将获得超过64个标签(在任何动作或单位测试运行前检查),单位测试失败(与 `--run-tests`),运行失败,出错,或取消(Ctrl+C).

* * *

### `format`

```
dataform format [project-dir]
```

格式 `.sqlx` 财务报告和审定财务报表 `.js` 使用 Dataform 内建的 formatter 的文件.

**立场参数**

| 参数 | 需求 | 说明 |
| --- | --- | --- |
| `project-dir` | 否( 默认) `.`(中文(简体) ) | Dataform 项目目录. |
|  |  |  |

**选项**

| 旗帜 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `--actions` | 数组 | `{definitions,includes}/**/*.{js,sqlx}` | 文件到格式的Glob模式,相对于项目目录(comma-separed或可重复). |
| `--ignore-js-files` | 布尔 | `false` | 如果设定,则仅格式为.sqlx文件(skips.js文件). |
| `--check` | 布尔 | `false` | 检查文件格式是否正确, 不修改 . |
|  |  |  |  |

**页:1**

-   虽有同旗名, `--actions` 这里要针对 `project-dir`,而不是动作名称。 与 `--ignore-js-files`,默认值变为 `{definitions,includes}/**/*.sqlx`。 。 。 .
-   `--check` 有代码的出口 `1` 如果任何文件会被重新编排.

* * *

## 共享项目配置旗

`compile`, (中文(简体) ), `test`,以及 `run` 全部接受下面的旗帜,这些旗帜将覆盖工程中的等同设置 `workflow_settings.yaml` 仅用于援引:

| 旗帜 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `--default-database` | 字符串 | —— 说 | 要使用的默认数据库,相当于谷歌云项目ID. 如果未设定, 则来自工作流程设置的值 。 雅姆尔被使用. |
| `--default-schema` | 字符串 | —— 说 | 覆盖默认计划名称 。 如果未设定, 则来自工作流程设置的值 。 雅姆尔被使用. |
| `--default-location` | 字符串 | —— 说 | 要使用的默认位置 。 见 [https://cloud.google.com/bigquery/docs/ 地盘](https://cloud.google.com/bigquery/docs/locations) 用于支持的值。 如果未设定, 则来自工作流程设置的值 。 雅姆尔被使用. |
| `--assertion-schema` | 字符串 | —— 说 | 默认断言计划。 如果未设定, 则来自工作流程设置的值 。 雅姆尔被使用. |
| `--vars` | 字符串 | —— 说 | 要注入的变量,作为逗号分隔键=值对(例如 -- vars=env=staging,region=eu),通过dataform.projectConfig.vars.<key>在代码中引用. 如果未设定, 则来自工作流程设置的值 。 雅姆尔被使用. |
| `--database-suffix` | 字符串 | —— 说 | 输出数据库名称后缀 。 如果未设定, 则来自工作流程设置的值 。 雅姆尔被使用. |
| `--schema-suffix` | 字符串 | —— 说 | 输出计划名称后缀 。 必须只包含字母和/或下划线 。 如果未设定, 则来自工作流程设置的值 。 雅姆尔被使用. |
| `--table-prefix` | 字符串 | —— 说 | 为所有表格名称添加前缀。 如果未设定, 则来自工作流程设置的值 。 雅姆尔被使用. |
| `--disable-assertions` | 布尔 | `false` | 禁止所有断言,包括内置断言(uniqueKey,非Null,行条件)和人工断言(类型:断言). |
| `--default-reservation` | 字符串 | —— 说 | 默认的大查询保留用于执行 。 如果未设定, 则来自工作流程设置的值 。 雅姆尔被使用。 如果两者都没有设定,则默认的大查询行为适用. |
|  |  |  |  |

## 全权证书文件

`init-creds` 写入 `.df-credentials.json` 文件( 文件名固定,不可配置) 输入项目目录。 此文件存储连接细节 Dataform 需要到达您的仓库 :

-   **基于ADC**数字 : `{ "projectId": ..., "location": ... }`
-   **基于 JSON 键**数字 : `{ "projectId": ..., "credentials": "<service account key JSON as a string>", "location": ... }`

详细情况:

-   **地点** 以上两种选择(`init-creds` 如果 `auto` 选择)
-   **服务账户冒充** (可选,有上述任一):增加 `"impersonateServiceAccount": "<service account email>"` 以该服务账户运行大查询查询(和分行排放)。 您的 ADC 身份或上面的密钥被用来冒用它和需要 `roles/iam.serviceAccountTokenCreator` 在服务帐户. `init-creds` 要求作为可选的最后一步.

只支持大查询 `init-creds` 和这个代码库中捆绑的大查询适配器。 处理 `.df-credentials.json` 作为一个秘密.. `dataform init` 加上来 `.gitignore` 自动; 从不承诺 .

* * *

## 实例

### 首次项目设置

```bash
dataform init my_project my-gcp-project-id US
cd my_project
dataform init-creds
dataform run
```

### 在不接触仓库的情况下编集和检查一个项目

```bash
# Human-readable summary
dataform compile

# Full compiled graph as JSON, e.g. to pipe into jq
dataform compile --json | jq '.tables[].target'

# Visualize the dependency graph
dataform compile --dot > graph.dot && dot -Tpng graph.dot -o graph.png

# Only show a subset of the graph (by unambiguous action name or full database.schema.name target)
dataform compile --output-actions=my_table --output-include-deps
dataform compile --output-actions=my-gcp-project-id.my_schema.my_table --output-include-deps
```

### 部署更改前运行单元测试

```bash
dataform test
# ...or fail a run early if tests don't pass:
dataform run --run-tests
```

### 只运行管道的一部分

```bash
# Run a specific table (by bare name or full database.schema.name) and anything downstream of it
dataform run --actions=my_table --include-dependents
dataform run --actions=my-gcp-project-id.my_schema.my_table --include-dependents

# Run everything tagged "daily", including their dependencies
dataform run --tags=daily --include-deps

# Force a full rebuild of the "my_incremental_table" incremental table
dataform run --actions=my_incremental_table --full-refresh
```

### 在不应用更改的情况下验证运行

```bash
dataform run --dry-run --json > dry-run-result.json
```

### {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}能跑多长

```bash
# Compilation must finish within 30s; the whole run (compile + execute) within 15 minutes
dataform run --timeout=30s --execution-timeout=15m

# Cap each JiT-compiled model's own compilation step at 1 minute
dataform run --execution-timeout=15m --jit-timeout=1m
```

### 以不同的环境为目的进行一项援引

```bash
dataform run \
  --default-database=my-staging-project \
  --schema-suffix=staging \
  --vars=env=staging,region=eu
```

### 开发期间使用SQLX

```bash
dataform compile --watch
```

### 在不修改文件的情况下检查格式

```bash
dataform format --check
```

### 从运行中跟踪和标记工作

```bash
dataform run --job-prefix=nightly --job-labels=team=analytics,pipeline=nightly-etl
```

### 为运行代理家族事件

```bash
DATAFORM_LINEAGE_DEBUG=1 dataform run --emit-lineage
```

对运行一个大查询任务的每个动作,都会发出线条事件:表格(包括视图和增量表格)、操作、断言和财产图表。 打开 `COMPLETE` 事件, `inputs` 财务报告和审定财务报表 `outputs` 用于实现大查询对象的动作 `table`, (中文(简体) ), `view`, (中文(简体) ), `incremental`, (中文(简体) ), `assertion`, (中文(简体) ), `propertyGraph`,以及 `operations` 与 `hasOutput: true`) (中文(简体) ). 断言似乎是对断言数据集的断言观点的一种过程,断言的依赖性作为投入报告。 属性图输入来自动作的依赖性(`dependencyTargets`因此,节点和边缘表格通过 `ref` 以输入方式列报,而图表定义中的原始表格路径则不列报。 申报没有公布。 行动类型在 `gcp_bq_pipelines_job.actionType` 属性为 `TABLE`, (中文(简体) ), `OPERATIONS`, (中文(简体) ), `ASSERTION` 或者说 `PROPERTY_GRAPH`,匹配Google Cloud中Dataform使用的数值。 作为先决条件, `workflow_settings.yaml` 配置和排除出问题,参见 [数据行距指南](https://npmcn.com/package/%40dataform/docs/lineage.md)。 。 。 .

线条事件被发送到由 `defaultLocation` 内 `workflow_settings.yaml` 或者,如果未确定,则由 `location` 内 `.df-credentials.json`。如果两者都未设定,则用警告跳过排出分界线,运行正常进行.

## 常见问题

### @dataform/cli 是什么？

Dataform命令行接口\.

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

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

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

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

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

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

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

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

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

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

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

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

