# @cmflow/cli 中文文档

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

版本：3\.21\.0
npm 元数据更新时间：2026-11-05T08:06:11.870Z
中文译文更新时间：2026-11-10T04:06:40.334Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40cmflow/cli
原文对照：https://npmcn.com/package/%40cmflow/cli/?lang=original

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

- 包体积（解压后）：6 MB，78 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：3 个
- peer 依赖：@semantic-release/commit-analyzer \>=13\.0\.1，@semantic-release/release-notes-generator \>=14\.0\.3
- 首次发布：2022-03-23T13:16:35.129Z
- 最新版本发布：2026-11-05T08:06:11.596Z
- 近 30 天下载量：10798（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：172（近 12 个月 80 个）

## 中文简介

令人惊叹的吉特之流

## 安装

```sh
npm install @cmflow/cli
```

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

## README

![Club Med](https://ns.clubmed.com/fbs/RWD/branding2023/Logo/MicrosoftTeams-image%20\(9\).png)

# @ cmflow/ cli (英语)

* * *

[![npm version](https://badge.fury.io/js/%40cmflow%2Fcli.svg)](https://badge.fury.io/js/%40cmflow%2Fcli) [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release) [![code style: oxfmt](https://img.shields.io/badge/code_style-oxfmt-ef4444.svg?style=flat-square)](https://oxc.rs/docs/guide/usage/formatter)

Club Med Flow命令行工具为Git Flow,语义放出并发布Yarn工作空间包.

## 安装

全局安装 Git 流程命令 :

```bash
npm install --global @cmflow/cli
cm --help
```

当项目使用其发布插件或软件包艺术命令时, 将它安装为开发依赖:

```bash
npm install --save-dev @cmflow/cli
```

## Git 流程命令

`cm` 提供启动、完成、推进、拉动、合并、重新定位和部署分支,以及释放和Jira助手的命令.

```bash
cm --help
cm start --help
cm finish --help
cm deploy --help
```

### Jira的释放

`jira-releases` 列出一个Jira项目和组件的发布版本,生成交付说明,并可以将发布版本标记为发布.

```bash
cm jira-releases --project-id <PROJECT_KEY> --component <COMPONENT> --tag <VERSION> [--update] [--verbose]
```

这需要 `JIRA_API`, (中文(简体) ), `JIRA_EMAIL` 财务报告和审定财务报表 `JIRA_TOKEN`Directus 工作流程支持是可选的和使用 `DIRECTUS_URL`, (中文(简体) ), `DIRECTUS_FLOW_ID` 财务报告和审定财务报表 `DIRECTUS_ACCESS_TOKEN`。没有 `--update` 首先审查选定的版本.

## Monorepo包裹文物

`cm packages build` 创建一个 Yarn-workspace 单列器的 npm- ready 文物。 它采取以下步骤:

1.  清除已配置的输出目录.
2.  运行已配置的构建脚本.
3.  复制非私人工作空间包 `dist/<package-name>`。 。 。 .
4.  将软件包与发布版本一起写出,并重写内部依赖性.

```bash
cm packages build
cm packages build --version 3.4.0-alpha.3
```

默认输出为 `dist`私人工作空间从未被纳入文物或出版。 若为 `--version` ,当前根 `package.json` 保留版本.

`cm packages build` 由语义释放引用 `prepare` 步骤 `cmflow` 凸起法。 不要添加到发布命令中: 语义发布拥有出品生命周期.

使用专用脚本只用于校验本地或发布前的 CI 检查中生成的文物 :

```json
{
  "scripts": {
    "artifacts:prepare": "yarn build && cm packages build"
  }
}
```

## `flow` 配置

在 root 中配置软件包构建和发布默认值 `package.json`数字 :

```json
{
  "workspaces": ["packages/*"],
  "publishConfig": {
    "registry": "https://registry.npmjs.org/"
  },
  "flow": {
    "outputDir": "dist",
    "buildCmd": "build",
    "npmAccess": "public",
    "npmDistTag": "next",
    "npmFallbackDistTag": "latest",
    "registries": [],
    "skipNpmPublish": false,
    "trustedPublishing": true
  }
}
```

| 选项 | 默认 | 目的 |
| --- | --- | --- |
| `outputDir` | `dist` | 生成的软件包文物的目标目录 . |
| `buildCmd` | `build` | 根包脚本运行于 `cm packages build`。 。 。 . |
| `npmAccess` | `public` | npm 访问通过到 `npm publish`。 。 。 . |
| `npmDistTag` | `publishConfig.tag` | 在生成的软件包列表中写入 Dist-tag . |
| `npmFallbackDistTag` | `latest` | Npm 拒绝隐含时使用的标记 `latest` 标签. |
| `registries` | `[]` | 需公布的其他登记册. |
| `skipNpmPublish` | `false` | 构建释放文物但跳过 npm 发布. |
| `trustedPublishing` | `false` | 启用 npm 信任的出版; 没有 npmjs 令牌被写入 `.npmrc`。 。 。 . |

工作空间软件包可能设置自己的 `flow.registries` 阵列来替换该软件包的根注册.

## 语义释放

使用 `cmrelease` 以运行语义发布 :

```json
{
  "scripts": {
    "release": "cmrelease",
    "release:dry_run": "cmrelease --dry-run"
  }
}
```

对于工作空间发布,发布序列必须在 npm 发布前将发布分支和标记推出 :

```js
import { defineConfig } from "@cmflow/cli";

export default defineConfig({
  prepare: ["@cmflow/cli/semantic/core/prepare/bump-version", "@cmflow/cli/semantic/core/prepare/commit"],
  publish: [
    "@cmflow/cli/semantic/core/push-release",
    "@cmflow/cli/semantic/core/publish-packages",
    "@cmflow/cli/semantic/core/sync-repository"
  ],
  npmPublish: false
});
```

`push-release` 推出分行并先放出标签. `publish-packages` 仅出版非私人产生的文物。 它支持npmjs、GitHub包和额外的登记册; `trustedPublishing` 使用 npm 基于 OIDC 的可信任的出版流程 。 在干燥运行期间,包被打包,但从未发布.

对于 CircleCI,在运行真实发行的每个任务中导出 OIDC 令牌 :

```yaml
- run:
    name: Cm Release
    command: |
      export NPM_ID_TOKEN=$(circleci run oidc get --claims '{"aud":"npm:registry.npmjs.org"}')
      yarn release
```

每个 npm 软件包也必须配置一个 CircleCI 信任的出版商并允许 `npm publish` 行动。 Npm上配置的组织ID,项目ID,管道定义ID和VCS的出处必须完全匹配CircleCI项目. [npm 的 CircleCI 信任的出版指南](https://docs.npmjs.com/trusted-publishers/) 详细列出所需数值.

## Atlas

API 到后端目录工具单独发布 [`@cmflow/atlas`](https://npmcn.com/package/%40cmflow/atlas)。其项目配置为 `atlas.config.ts`;它不属于此寄存器或此 CLI 软件包.

## 发展

从单列波根:

```bash
yarn workspace @cmflow/cli build
yarn workspace @cmflow/cli test
yarn check
```

## 许可证

《麻省理工学院许可证》 版权 (c) 2016 - 今天 ClubMed

特此准许任何人免费获得本软件和相关文件文件("软件")的副本,不受限制地在软件中进行交易,包括不受限制地享有软件的使用、复制、修改、合并、出版、分发、分版和(或)销售的权利,并允许软件获得者这样做,但须符合下列条件: 1. 上述版权通知和许可通知应载入软件的所有副本或大部分。 软件是提供的"as is", 没有任何种类的恐惧, 释放或被卷入, 包括但不限制在 危机的保障, 证明一个特定的目的和无关. 任何索赔、索赔或其他负债,无论是合同、交易或其他行为,产生于、产生于或涉及软件或软件的使用或其他交易的行为,都不得作为担保.

## 常见问题

### @cmflow/cli 是什么？

令人惊叹的吉特之流

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

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

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

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

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

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

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

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

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

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

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

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

