SuperAPI AI 工具集

fluentui-cli

通用与其它

查看项目

更新于 10-16 00:31

技能介绍

用途:@fluentui/cli(位于 tools/cli/)是 Fluent UI 的内部命令行工具,基于 yargs 构建,采用模块化、懒加载架构,每个命令独立目录,仅在调用时于运行时加载。本技能用于指导新增命令、修改现有命令及理解其架构。

主要能力与结构:入口为 bin/fluentui-cli.js(需编译产物);src/cli.ts 负责 yargs 主设置并注册所有命令;src/index.ts 为公共 API 再导出;src/utils/ 提供 barrel 导出与共享的 CommandHandler 类型;src/commands/ 下含 metadata(API 元数据命令)与 report(报告命令组,含 info、usage 子命令)。

懒加载模式:命令定义(名称、描述、选项构建器)被立即导入,属轻量内容;实际处理逻辑通过动态 import() 仅在命令被调用时加载,例如 handler 内 await import('./handler'),使实现不进入启动路径。

类型与注册:所有处理器使用 src/utils/types.ts 中的 CommandHandler<T>,签名为 (argv: ArgumentsCamelCase<T>) => Promise<void>。命令在 cli.ts 中导入并注册,使用 scriptName('fluentui-cli')、usage、command、demandCommand(1)、help()、strict() 与 parse()。

构建与测试:yarn nx run cli:build 构建;yarn nx run cli:test 运行测试;可用 node tools/cli/bin/fluentui-cli.js --help 及 node tools/cli/bin/fluentui-cli.js <command-name> --help 检查帮助输出。

约定:新增命令必须使用 Nx 生成器脚手架,不要手动创建命令文件;共享工具放 tools/cli/src/utils/ 并通过 barrel 导出;每个命令须支持 --help;处理器文件须导出以 CommandHandler<T> 标注的具名 handler 常量;测试与处理器相邻,命名为 handler.spec.ts。子命令使用 yargs 嵌套命令模式,在 builder 中注册并调用 demandCommand(1) 与 help()。

限制:资料未提供安装方式、发布渠道、版本、收费与平台支持等信息。