@dbx-tools/cli-service

中文文档
0.9.206发布于 2026/11/11Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 9089

跨平台服务寿命周期、 uv Python 运行时间和用于 CLIs 的系统托盘菜单

中文使用文档
文档目录12 节
  1. 添加服务命令
  2. 安装和管理服务
  3. 自定义托盘菜单
  4. 命令参考
  5. <cli> service
  6. <cli> service install
  7. <cli> service start
  8. <cli> service stop
  9. <cli> service restart
  10. <cli> service status
  11. <cli> service logs
  12. <cli> service uninstall

@dbx-tools/cli-服务

添加当前用户服务安装、 生命周期命令、 可选的 UV 管理 Python 依赖性,以及一个指挥官CLI的托盘菜单. 管理命令 在它的终端关闭于macOS,Linux和Windows后继续.

添加服务命令

import { buildServiceCommand } from "@dbx-tools/cli-service/cli";
import { defineService } from "@dbx-tools/cli-service/definition";
import { Command } from "commander";

const program = new Command("example");
program.addCommand(
  buildServiceCommand(
    defineService(import.meta.url, {
      command: { arguments: ["serve"] },
      menu: [{ type: "url", label: "Open App", url: "http://127.0.0.1:4400" }],
    }),
  ),
);
await program.parseAsync(process.argv);

defineService 使用自有软件包的名称、版本和默认可执行文件. 使用 command.binName 当软件包有多个可执行条目时。 设定 command.executable 来运行一个已有的外部程序,而不是编译一个 软件包条目。 管理命令默认 NODE_ENV 改为 production。一个 明确 command.environment.NODE_ENV 超过它.

设定 pythonPackage 当编译的服务命令需要 Python 运行时间时 :

defineService(import.meta.url, {
  pythonPackage: { name: "example-runtime" },
  command: { arguments: ["serve"] },
});

在安装过程中,服务在其下方形成了一个孤立的uv环境 数据目录,在服务版本安装 Python 分布,以及 套装 PYTHON 到那个环境的翻译. pythonPackage.python 选择 python 版本 uv 管理和默认为 3.11.v必须可用于 PATH 安装期间。 卸载此服务会删除环境 与服务拥有的其他数据.

当地项目设施保存了套件的额外和配套依赖性. 离线装置只从 uv 的缓存中解析, 当 a 所需文物没有.

command.options 接受具体选项对象或 Zod 对象 计划 对象序列化其当前值 。 Schemas 剖析 {} 序列化 他们的默认。 布尔值变为正或否定的旗帜,数组变为 重复的旗帜,以及 undefined 数值省略 :

defineService(import.meta.url, {
  command: {
    arguments: ["serve"],
    options: {
      host: "127.0.0.1",
      port: 4400,
      telemetry: false,
    },
  },
});

安装和管理服务

例如,上述程序:

example service install
example service status
example service logs -- tail -f
example service uninstall

参数后 -- 以附加的服务日志路径运行为命令, 所以 logs -- cat 打印日志和 logs -- tail -f 跟着它.

该服务属于当前用户. 登录启动使用启动代理 macOS,Linux上的一个XDG自动启动条目,而Windows上的一个启动命令. 软件包 输入点用 Bun 编译成版本,每代安装 ~/.dbx-tools/bin; Python 环境使用相同的版本生成 服务数据目录,每个主机一代都携带匹配的托盘 可执行文件 。 在 macOS 上安装任何 stale 启动定义, 清除 并启动当前世代,通过 发射完毕 同时期服务安装了服务替换和序列 更新共享运行时间依赖目录.

服务可提供在管理前运行的认证前飞行 命令。 安装时间 waitForAuth 模式默认为 auto:拥有的CLI 决定是否存在适用的认证来源, true 需要飞行前, 财务报告和审定财务报表 false 跳过它。 主机保持对状态的响应并停止请求,同时 飞行前等待.

启动条目不监督主机, 因此主机重新启动飞行前 或管理指挥 当它独自离开,等待 1,2,5,10,30, 然后在连续失败的60分之间。 每次重启都记录在 host.log。 。 。 . 从托盘退出或运行 stop 不重启结束主机.

restart 停止并启动已安装的可执行文件。 它不会重建它. 重新运行 install 更新一个耗用软件包以替换已编译的软件包 可执行文件并更新已保存的配置 .

自定义托盘菜单

默认托盘菜单显示程序名称、版本和要约 Quit。 。 。 . 通过服务定义添加 URL,命令,或分隔项. 自定义 命令项可以在同一处选择软件包二进制或外部可执行文件 作为主要服务指挥.

在向另一个 CLI 添加服务支持时使用此软件包, 这样用户可以得到 同样的安装,生命周期命令,和托盘行为。 生成的 参考用途 <cli> 作为消费程序名称的占地符.

命令参考

<cli> service

安装和管理桌面服务

<cli> service [command]

图标

命令说明
install [options]为当前用户安装并启动服务
start启动已安装的服务
stop停止运行服务
restart重新启动已安装的服务
status打印服务安装和处理状态为 JSON
logs [command...]打印服务日志路径或将其附加到命令中
uninstall停止并删除当前用户的服务

<cli> service install

为当前用户安装并启动服务

<cli> service install [options]

选项

选项说明
--start安装后启动服务 。 (默认:真实)
--no-start安装后禁用服务 .
--python-project <value>本地 Python 项目已安装, 而不是注册包 .
--offline从 uv 缓存中安装 Python 包而无需网络访问 。 (默认:虚假)
--no-offline禁用从 uv 缓存中安装 python 包而无需网络访问 .
--wait-for-auth <value>认证准备模式:当服务提供适用的认证前飞行时,自动等待,真实需要,而假跳过. (选择:"自发","真","假",默认:"自发")

<cli> service start

启动已安装的服务

<cli> service start

<cli> service stop

停止运行服务

<cli> service stop

<cli> service restart

重新启动已安装的服务

<cli> service restart

<cli> service status

打印服务安装和处理状态为 JSON

<cli> service status

<cli> service logs

打印服务日志路径或将其附加到命令中

<cli> service logs [command...]

参数

参数说明
command在服务日志路径前运行的命令和参数

<cli> service uninstall

停止并删除当前用户的服务

<cli> service uninstall

版本与发布记录

@dbx-tools/cli-service 共发布 99 个版本,首次发布于 2026/10/06;过去 12 个月发布了 99 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.9.206latest2026/11/11今天
0.9.2052026/11/111 天前
0.9.2042026/11/101 天前
0.9.2032026/11/074 天前
0.9.2022026/11/065 天前
0.9.2012026/11/056 天前

关于 @dbx-tools/cli-service 的常见问题

@dbx-tools/cli-service 是什么?

跨平台服务寿命周期、 uv Python 运行时间和用于 CLIs 的系统托盘菜单

如何安装 @dbx-tools/cli-service?

在项目目录运行 npm install @dbx-tools/cli-service,或使用 pnpm add / yarn add / bun add。

@dbx-tools/cli-service 支持 TypeScript 吗?

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

@dbx-tools/cli-service 支持 ESM 还是 CommonJS?

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

@dbx-tools/cli-service 可以商用吗?

@dbx-tools/cli-service 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@dbx-tools/cli-service 的下载量有多少?

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

@dbx-tools/cli-service 还在维护吗?

最新版本 0.9.206 发布于 2026/11/11(今天);至今共发布 99 个版本,其中过去 12 个月发布了 99 个;首次发布于 2026/10/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。