动态框架
开发支持动态发现的CLI应用的框架 和安装新命令
关键特性
- 灵活的CLI定义:
- 一个带有全局参数的默认全局命令,例如 .
executable [global_arguments] - 多个子命令, 有基于子命令的参数, 例如 .
executable <sub_command> [sub_command_arguments] - 多组成员子命令, 有成员子命令参数
譬如说.
executable <group_command> <member_sub_command> [member_sub_command_arguments] - 上面的组合!
- 一个带有全局参数的默认全局命令,例如 .
- 支持命名选项和基于位置的参数,例如:.
executable --<option_name>=<option_value> <positional_value> - 支持为下列项目指定多个值:
- 通过下列方式命名选项参数:
- 隐含索引式重复论证,例如:.
executable --<option_name>=<option_value_1> --<option_name>=<option_value_2> - 或明确编入索引的参数,例如:.
executable --<option_name>[0]=<option_value_1> --<option_name>[1]=<option_value_2>
- 隐含索引式重复论证,例如:.
- 基于位置的参数("varrgs")例如.
executable <positional_1_value_1> <positional_1_value_2>
- 通过下列方式命名选项参数:
- 支持复杂的嵌入式选项,例如.
executable --<option_name>.<property_1_name>=<property_1_value> --<option_name>.<property_1>.<property_1_a>=<property_1_a_value> - 支持(可选)持续配置和环境变量 指定命令参数默认值.
- 用于帮助,日志级别和版本管理的核心(但可选)命令.
- 颜色输出的核心(但可选)服务(前景和背景), 语法突出, 漂亮的打印, 表和树结构渲染, 配置管理,用户输入提示.
- 支持屏蔽和不屏蔽启动任务.
- 具有关机钩的光能信号处理(SIGINT/SIGTERM),合作 取消长期运行的命令,并三相中断部队退出.
- 管道或非交互运行时的慷慨降解:颜色,
超链接、提示、旋转器/进度栏和图像渲染
自动禁用,基于
stdin编号 :stdout编号 :stderr是TTYs(英语:TTYs). - 对动态发现和安装命令的核心(但可选)支持 服务 动态插件框架
- 最小的依赖.
- Bun总部.
- 基于本地JavaScript模块.
- 以 Typescript 写成 .
- 使用 Bun 运行时间编译为二进制可执行文件 .
用法实例
现提供以下实例:
- 实例- cli 是一个实例 CLI 基于此框架的应用程序.
- mpeg- sdl- 工具 是一个真实的世界 基于此框架的 CLI 应用程序.
- 例- cli- 插件 是一个 基于此框架的示例命令和服务插件.
进一步详情
许可证
麻省理工学院