EN

术语索引

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

更新于 2周前

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

用户输入中的普通 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
具名命令第一个裸 token 与 name 或 alias 匹配后选中的命令类。@Command()
主命令处理没有具名命令的调用,包括只有可执行文件或以选项开头的调用。@CommandMajor()
缺失命令可选的后备命令类,在第一个裸 token 无法匹配具名命令时接收调用。@CommandMissing()
处理器命令类中执行具体动作的方法;一次调用只会选择一个处理器。@Handler()
默认处理器没有匹配路径或处理器标志时执行的方法。一个命令类最多定义一个。@Handler()
处理器路径使用一段或多段固定位置 token 选择处理器,匹配时最长路径优先。@Handler({ path })
处理器标志通过 —help 一类选项改为执行另一个互斥处理器。@Handler({ flag, alias })
字段选项解析并赋值到命令实例属性上的标志、单值或重复值。@Flag / @Value / @ArrayValue
输入移除具名命令和已匹配处理器路径后剩余的位置 token。FuncArgs.inputs

运行时与应用结构术语

术语含义对应 API
命令作用域本次调用最终选中的一个装饰器类:主命令、具名命令或缺失命令。CommandMajor / Command / CommandMissing
注册表已注册具名命令的只读元数据集合,最常用于生成帮助信息。@Regs() / CommandRegistry
模块组织命令、服务和导入模块的应用边界,本身不是可执行命令。@FuncModule()
服务由模块注册并按构造参数类型注入的可复用类,通常承载业务或基础设施逻辑。@Service()

运行时如何使用这些定义选择类、方法和依赖,见 深入了解运行时;所有装饰器的参数结构见 API 参考