# @fig/complete-commander 中文文档

规范地址：https://npmcn.com/package/%40fig/complete-commander/

版本：3\.2\.0
npm 元数据更新时间：2025-02-04T00:23:53.646Z
中文译文更新时间：2026-11-14T17:22:49.644Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40fig/complete-commander
原文对照：https://npmcn.com/package/%40fig/complete-commander/?lang=original
项目主页：https://github.com/withfig/autocomplete-tools#readme
源码仓库：https://github.com/withfig/autocomplete-tools

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

- 包体积（解压后）：11.9 kB，5 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- peer 依赖：commander ^11\.1\.0
- 首次发布：2022-05-10T12:00:34.631Z
- 最新版本发布：2024-06-06T16:36:47.699Z
- 近 30 天下载量：3626139（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：5（近 12 个月 0 个）

## 中文简介

导出命令为 Fig spec

## 安装

```sh
npm install @fig/complete-commander
```

也可以使用：`pnpm add @fig/complete-commander`、`yarn add @fig/complete-commander`、`bun add @fig/complete-commander`

## README

# 指挥官整编

加速转换工作流程的工具 [指挥官](https://github.com/tj/commander.js) 命令改为 [图](https://github.com/withfig/autocomplete) 完成 spec 文件.

* * *

## 文档

```ts
generateCompletionSpec(command[, options]): string
```

从所提供命令生成一个补全 spec并返回一个字符串 .

-   `command`(单位:千美元) `commander.Command` 对象
-   [`options`](https://npmcn.com/package/%40fig/complete-commander/#readme-options): 含有下列可选属性的对象:
    -   [`figSpecCommandName`](https://npmcn.com/package/%40fig/complete-commander/#readme-specify-the-fig-command-name): 指定用于生成无花果 spec 的命令名称 ()[见](https://npmcn.com/package/%40fig/complete-commander/#readme-custom-command)) (中文(简体) ). 默认为 `'generate-fig-spec'`

```ts
addCompletionSpecCommand(command): void
```

在指定的命令中添加一个新的子命令, 以在引用时打印生成的光谱 `$CLI generate-fig-spec`。 。 。 .

-   `command`(单位:千美元) `commander.Command` 对象

## 使用量

使用此库与调用函数一样简单. 下面的代码片段每次运行可执行文件时都会生成一个新的光谱.

```js
import { program } from 'commander'
import { generateCompletionSpec } from '@fig/complete-commander'

program
  .name('babel')
  .description('The compiler for writing next generation JavaScript')
  .version('7.16.0')
  .argument('<file>', 'file to compile')

// Do not generate if production env
if (process.env.NODE_ENV === 'development') {
  const spec = generateCompletionSpec(program) // write the generated spec to a file or print it to the console
}
```

### 自定义命令

也可以提供自定义命令,在调用时生成 spec文件. 例如,以下程序在 `eslint generate-fig-spec` 是从终端运行.

```js
import { program } from 'commander'
import { addCompletionSpecCommand } from '@fig/complete-commander'

program
  .name('eslint')
  .description('Find and fix problems in your JavaScript code')
  .version('8.0.0')
  .argument('<file>', 'file to lint')

if (process.env.NODE_ENV === 'development') {
  addCompletionSpecCommand(program)
}
program.parse()
```

> _注意: 命令可以称为任意名称, 但如果您指定了不同于 `'generate-fig-spec'` 您应该设置 [`figSpecCommandName`](https://npmcn.com/package/%40fig/complete-commander/#readme-specify-the-fig-command-name) 选项._

## 备选方案 `generateCompletionSpec`

### 指定无花样命令名称

创建时 [自定义命令](https://npmcn.com/package/%40fig/complete-commander/#readme-custom-command) 生成名称不同于 `'generateCompletionSpec'` 您想要避免将其写入生成的文件。 这个选项有助于你做到这一点.

```js
program
  .name('eslint')
  .description('Find and fix problems in your JavaScript code')
  .version('8.0.0')
  .argument('<file>', 'file to lint')

if (process.env.NODE_ENV === 'development') {
  program
    .command('createSpec') // this command will not be included in the generated spec
    .description('Generate a fig spec')
    .action(() => {
      generateCompletionSpec(program, { figSpecCommandName: 'createSpec' })
    })
}
program.parse()
```

* * *

_p.s. 此工具是为 `commander@8`,但也应在之前的大多数版本中发挥作用._

## 贡献者

这一整合是由下列机构建立的: [费德里科·西亚迪](https://github.com/fedeci/)。请参看他以前的历史记录: [https://github.com/fedeci/commander-to-fig 互联网档案馆的存檔,存档日期2013-12-21](https://github.com/fedeci/commander-to-fig)。 。 。 .

## 常见问题

### @fig/complete-commander 是什么？

导出命令为 Fig spec

### 如何安装 @fig/complete-commander？

在项目目录运行 npm install @fig/complete-commander，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：commander（^11\.1\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @fig/complete-commander 支持 TypeScript 吗？

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

### @fig/complete-commander 支持 ESM 还是 CommonJS？

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

### @fig/complete-commander 可以商用吗？

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

### @fig/complete-commander 的下载量有多少？

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

### @fig/complete-commander 还在维护吗？

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

