@davstack/cli-utils

中文文档
1.3.2发布于 2026/06/10MITTypeScriptES Module近 30 天下载 1.3万

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

中文使用文档
文档目录4 节
  1. 为什么
  2. 安装
  3. 用法示例
  4. 出口

@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。 。 。 .

安装

pnpm add @davstack/cli-utils

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

用法示例

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)))
$ 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-utilssrc/cli.tsdefineCli, (中文(简体) ), parseArgs, (中文(简体) ), coerceFlag, (中文(简体) ), CommandSpec, (中文(简体) ), CliSpec, (中文(简体) ), FlagSpec
@davstack/cli-utils/helpsrc/cli-help.tsformatHelp(commandPath, spec)
@davstack/cli-utils/configsrc/config.tsfindRepoRoot(start?), (中文(简体) ), findToolConfig(toolName, cwd?)

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

版本与发布记录

@davstack/cli-utils 共发布 7 个版本,首次发布于 2026/05/26;过去 12 个月发布了 7 个版本。

版本发布日期距今
1.3.2latest2026/06/105 个月前
1.3.12026/05/295 个月前
1.3.02026/05/285 个月前
1.2.02026/05/275 个月前
1.1.12026/05/265 个月前
1.1.02026/05/265 个月前

关于 @davstack/cli-utils 的常见问题

@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 和提交记录判断。