# @davstack/cli-utils 中文文档

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

版本：1\.3\.2
npm 元数据更新时间：2026-06-09T19:50:23.961Z
中文译文更新时间：2026-11-11T16:21:50.152Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：79.6 kB，17 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2026-05-25T20:41:36.621Z
- 最新版本发布：2026-06-09T19:50:23.834Z
- 近 30 天下载量：13491（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：7（近 12 个月 7 个）

## 中文简介

由@davstack/logs-server和vitest-server共享的小CLI帮助器.

## 安装

```sh
npm install @davstack/cli-utils
```

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

## README

# @davstack/cli-utils (英语)

由 Davstack 守护进程包共享的 0-dep CLI 脚手架(`logs-server`, (中文(简体) ), `vitest-server`) (中文(简体) ).

## 为什么

-   **斯克驱动的CLI.** 宣布动词+旗帜+位置+子命令为一树;解析, `--help`,退出代码 (0 ok / 1 处理器出错 / 2 使用) 自动退出 .
-   **共享配置解析器 .** `findRepoRoot` + 键 `findToolConfig` 给每个davstack守护进程相同的 `<repo-root>/.davstack/config/<tool>.config.ts` 找找,带有git-root + 工作空间标记后退.
-   **零跑道岔.** 纯TS,没有指挥官/亚尔格/citty. 船舶作为来源——消费者通过 `bun` 或者说 `node --experimental-transform-types`。 。 。 .

## 安装

```bash
pnpm add @davstack/cli-utils
```

仅存图书馆-无 `bin`从您守护进程的条目文件中获取 .

## 用法示例

```ts
import { defineCli, type CommandSpec } from "@davstack/cli-utils"
import { findToolConfig } from "@davstack/cli-utils/config"

const serve: CommandSpec = {
  description: "Boot the daemon",
  flags: {
    port: { type: "number", default: 5179, env: "MYTOOL_PORT" },
    host: { type: "string", default: "127.0.0.1" },
  },
  run: async ({ flags }) => {
    const configPath = findToolConfig("mytool")  // <repo>/.davstack/config/mytool.config.ts
    // ... boot server using flags + (optional) config file
    return 0
  },
}

const cli = defineCli({ name: "mytool", description: "My daemon", commands: { serve } })
process.exit(await cli.run(process.argv.slice(2)))
```

```bash
$ mytool serve --port 6000          # flag wins over env wins over default
$ mytool serve --no-some-bool       # boolean negation
$ mytool --help                     # auto-generated help tree
```

## 出口

| 子路径 | 来源 | 表面 |
| --- | --- | --- |
| `@davstack/cli-utils` | [`src/cli.ts`](https://npmcn.com/package/%40davstack/cli-utils/src/cli.ts) | `defineCli`, (中文(简体) ), `parseArgs`, (中文(简体) ), `coerceFlag`, (中文(简体) ), `CommandSpec`, (中文(简体) ), `CliSpec`, (中文(简体) ), `FlagSpec` |
| `@davstack/cli-utils/help` | [`src/cli-help.ts`](https://npmcn.com/package/%40davstack/cli-utils/src/cli-help.ts) | `formatHelp(commandPath, spec)` |
| `@davstack/cli-utils/config` | [`src/config.ts`](https://npmcn.com/package/%40davstack/cli-utils/src/config.ts) | `findRepoRoot(start?)`, (中文(简体) ), `findToolConfig(toolName, cwd?)` |

类型签名以源为单位——读取而不是再作记录. 实际消费者: `packages/logs-server/src/index.ts`, (中文(简体) ), `packages/vitest-server/src/index.ts`。 。 。 .

## 常见问题

### @davstack/cli-utils 是什么？

由@davstack/logs-server和vitest-server共享的小CLI帮助器\.

### 如何安装 @davstack/cli-utils？

在项目目录运行 npm install @davstack/cli-utils，或使用 pnpm add / yarn add / bun add。

### @davstack/cli-utils 支持 TypeScript 吗？

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

### @davstack/cli-utils 支持 ESM 还是 CommonJS？

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

### @davstack/cli-utils 可以商用吗？

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

### @davstack/cli-utils 的下载量有多少？

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

### @davstack/cli-utils 还在维护吗？

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

