name: command-optimization description: CLI命令开发专家。适用于创建命令、设计参数解析、自动化任务或实施CLI最佳实践。专攻命令设计模式和用户体验。 author: Joseph OBrien status: unpublished updated: ‘2025-12-23’ version: 1.0.1 tag: skill type: skill
命令优化
此技能专精于创建、设计和优化命令行界面。它专注于命令设计模式、参数解析、任务自动化和CLI最佳实践。
何时使用此技能
- 创建新的CLI命令时
- 设计命令界面时
- 优化现有命令时
- 实施参数解析时
- 通过CLI自动化任务时
- 改进命令用户体验时
此技能的功能
- 命令设计:创建结构良好的CLI命令
- 参数解析:设计直观的参数和选项结构
- 任务自动化:通过命令自动化重复性任务
- 用户体验:改进命令的可用性和反馈
- 错误处理:实施稳健的错误处理和验证
- 文档编写:创建清晰的命令文档和帮助文本
使用方法
创建命令
创建一个用于生成React组件的命令
为数据库迁移设计一个CLI命令
优化命令
改进此命令的用户体验
命令设计模式
面向任务的命令
结构:
- 清晰的动作动词(生成、创建、构建)
- 目标对象(组件、迁移、测试)
- 用于自定义的选项
- 有用的输出和反馈
示例:
# 好:清晰且可操作
npm run generate:component UserProfile
# 差:目的不明确
npm run make UserProfile
分析命令
结构:
- 分析类型(分析、检查、审计)
- 要分析的目标
- 输出格式选项
- 可操作的建议
示例:
# 好:清晰的分析命令
npm run analyze:dependencies -- --outdated
# 差:模糊的命令
npm run check
参数处理
文件/目录参数
模式:
- 接受单个文件或目录
- 支持通配符模式
- 验证存在性
- 处理权限
示例:
# 单个文件
lint src/utils.js
# 目录
lint src/
# 通配符模式
lint "src/**/*.js"
配置选项
常用选项:
--config:自定义配置文件--output:输出目录或格式--verbose:详细日志--dry-run:预览而不执行--force:覆盖安全检查
错误处理
输入验证
检查:
- 文件/目录存在性
- 读/写权限
- 文件格式有效性
- 必需的依赖项
- 配置语法
错误消息
好的错误消息:
- 问题的清晰描述
- 具体位置(文件、行)
- 建议的修复方法
- 关于失败原因的上下文
示例:
# 好
错误:未找到配置文件:.eslintrc.json
运行 'npm run init:config' 来创建它。
# 差
错误:未找到文件
示例
示例1:组件生成器命令
输入:创建一个用于生成React组件的命令
输出:
## 命令:generate:component
### 用法
```bash
npm run generate:component 组件名称 [选项]
选项
--path <路径>:输出路径(默认:src/components)--type <类型>:组件类型(functional|class)(默认:functional)--with-tests:生成测试文件--with-styles:生成样式表
示例
# 基本组件
npm run generate:component UserCard
# 带选项
npm run generate:component UserCard --path src/features/users --with-tests --with-styles
实现
// scripts/generate-component.js
const componentName = process.argv[2];
const options = parseArgs(process.argv.slice(3));
if (!componentName) {
console.error('错误:需要组件名称');
console.log('用法:npm run generate:component <名称>');
process.exit(1);
}
generateComponent(componentName, options);
示例2:数据库迁移命令
输入:创建一个数据库迁移命令
输出:
## 命令:db:migrate
### 用法
```bash
npm run db:migrate [迁移名称] [选项]
选项
--create <表>:为表创建新迁移--rollback:回滚最后一次迁移--status:显示迁移状态--to <版本>:迁移到特定版本
示例
# 创建迁移
npm run db:migrate --create users
# 运行迁移
npm run db:migrate
# 检查状态
npm run db:migrate --status
# 回滚
npm run db:migrate --rollback
## 参考文件
- **`references/SLASH_COMMAND.template.md`** - 包含前端元数据、动态上下文和工作流结构的斜杠命令模板
## 最佳实践
### 命令设计
1. **清晰命名**:使用描述性、面向动作的名称
2. **一致模式**:遵循项目约定
3. **有用默认值**:为常见用例提供合理的默认值
4. **良好反馈**:清晰的输出和进度指示器
5. **错误处理**:优雅失败并提供有用的消息
### 用户体验
- **渐进式披露**:在帮助中显示基本用法和高级选项
- **验证**:尽早验证输入并提供清晰的错误信息
- **确认**:对破坏性操作请求确认
- **试运行**:支持--dry-run进行预览
- **详细模式**:--verbose用于详细输出
### 文档
- **帮助文本**:为每个命令提供清晰、简洁的帮助
- **示例**:包含实际示例
- **错误消息**:解释出错原因及如何修复
- **README**:在项目README中记录命令
## 相关用例
- 创建特定于项目的命令
- 自动化开发任务
- 构建CLI工具
- 改进命令可用性
- 标准化命令模式