用途:解决基础设施操作散落在 shell 脚本、手动命令和部署流水线中难以维护、不一致的问题,通过统一入口的结构化 CLI 工具来组织命令。
主要能力:提供三种分层模式。1 层适用于简单项目,单文件 switch 分发命令,命令数不超过 5 个;2 层将 bin 目录(参数解析)与 commands 目录(业务逻辑与 SDK 调用)分离,适合中等项目、2 至 5 个 CLI 工具;3 层在 commands 之下增加 core 目录存放独立工具模块(如 logger、env、aws/ssm),命令通过组合而非继承来使用这些模块,适合 5 个以上 CLI 工具、团队协作的大型项目。模式强调一致性、可读性、可测试性与可复用性,命令可通过 --help 自文档化。
使用方式:在 package.json scripts 中注册命令,例如 "deploy:dev": "ts-node cli/bin/deploy.ts --env=dev";Python 项目可在 pyproject.toml 的 [tool.poetry.scripts] 中注册;也可在 GitHub Actions、部署脚本和本地开发中调用同一命令。迁移建议:命令总行数超过约 200 行、需要 --verbose 或 --dry-run 等共享参数、多个命令共享大量逻辑时,从 1 层迁移到 2 层;出现 5 个以上 CLI 工具、逻辑重复、团队需要统一模式时迁移到 3 层。
适用场景:静态前端、单栈项目、中等规模项目以及多命令共享核心模块的团队环境。
限制:资料未提供具体安装命令、依赖版本、收费信息或性能数据;该模式为参考性方案,需结合自身上下文调整,不应逐字复制。