EN

术语索引

按 CLI 输入、Func 定义和运行时结构三个层级查询术语。

更新于

这些术语属于不同层级,不应互相替换。学习如何定义命令时先读 核心概念;只有需要确认精确含义时再查本页。

用户输入中的普通 CLI 术语

术语含义对应位置或 API
一次调用用户从启动可执行文件到程序退出的完整执行,例如 ship project —help。完整 argv
可执行文件用户输入的程序名,例如 ship。它通常由 package.json#bin 指向构建产物。package.json#bin
token命令行解析前按顺序读取的一段输入,例如 project、—role 或 owner。process.argv
选项普通 CLI 中对 —name、-n 及其值的统称;在 func 中还要区分字段选项和处理器标志。@Flag / @Value / @Handler({ flag })
位置输入不通过选项名标识、其含义由所在位置决定的数据,例如 alice。@Args().inputs

func 中用来定义 CLI 的概念

术语含义对应 API
具名命令一段或多段 path token 与 canonical path 或 alias 匹配的命令类。@Command()
主命令在没有匹配具名命令时提供默认、路径或 flag 入口的特殊命令类。@CommandMajor()
缺失命令可选的后备命令类,在位置输入无法匹配具名路径时接收调用。@CommandMissing()
处理器命令类中执行具体动作的方法;一次调用只会选择一个处理器。@Handler()
默认处理器当前命令节点没有选择 path 或动作选项时执行的方法。@Handler()
处理器路径追加在 Command path 后的一段或多段固定 token。@Handler(path)
处理器标志通过 —version 一类选项改为执行另一个互斥处理器。@Handler({ flag, alias })
模块动作在一个 Module 作用域内提供可复用的互斥动作选项。@OptionCommand()
字段选项解析并赋值到 Command 或 option Provider 的标志、单值或重复值。@Flag / @Value / @ArrayString / @ArrayNumber
输入移除匹配 Command 与 Handler path 后剩余的位置 token。Args.inputs

运行时与应用结构术语

术语含义对应 API
命令图由 Command path、Handler path 和 alias 编译出的不可变路由结构。内部运行时结构
运行时上下文当前调用的命令元数据、IO、cwd、signal 与 exit code。Context
模块组织命令、options、Providers 和导入模块的应用边界。@Module()
provider由模块注册并注入的 class、value 或 factory,通常承载可复用能力。@Injectable / Module.providers
option provider由 Module 注册、带 CLI 字段的可注入类,作用于根或直接拥有的 Commands。@Option / Module.options

Module 的依赖可见性和工程划分方式见模块;运行时如何使用这些定义选择类、方法和依赖,见深入了解运行时;所有装饰器的参数结构见 API 参考