文档
命令行工具(自定义模块)

模块化功能 (Module System)

从 v2.0.0 版本开始,CLI 支持模块化扩展,允许开发者自定义命令和工作流。

核心概念

  • CLI Module: 包含自定义命令和工作流的模块
  • Command: 单个可执行的命令
  • Workflow: 由多个步骤组成的复杂工作流
  • Module Manager: 管理模块注册和执行的核心组件

模块注册

import { moduleManager } from 'react-native-update-cli';
import { myCustomModule } from './my-custom-module';
 
// 注册自定义模块
moduleManager.registerModule(myCustomModule);

创建自定义模块

import type { CLIModule, CommandContext, CommandResult } from 'react-native-update-cli';
 
export const myCustomModule: CLIModule = {
  name: 'my-module',
  version: '1.0.0',
  commands: [
    {
      name: 'my-command',
      description: '我的自定义命令',
      handler: async (context: CommandContext): Promise<CommandResult> => {
        // 命令执行逻辑
        return { success: true, data: 'Hello from custom command!' };
      },
      options: {
        flag: {
          hasValue: true,
          description: '自定义参数'
        }
      }
    }
  ],
  workflows: [
    {
      name: 'my-workflow',
      description: '我的自定义工作流',
      steps: [
        {
          name: 'step1',
          description: '第一步',
          execute: async (context: CommandContext) => {
            console.log('执行第一步...');
            return { step1Result: 'completed' };
          }
        },
        {
          name: 'step2',
          description: '第二步',
          execute: async (context: CommandContext, previousResult: any) => {
            console.log('执行第二步,前一步结果:', previousResult);
            return { ...previousResult, step2Result: 'completed' };
          }
        }
      ]
    }
  ],
  init: (provider) => {
    console.log('模块初始化完成');
  }
};

查看已注册模块命令

# 查看所有可用模块命令
pushy list

工作流系统 (Workflow System)

工作流是由多个步骤组成的复杂任务执行流程,支持条件执行、错误处理和结果传递。

内置工作流

1. 用户认证工作流

pushy auth-check

检查用户认证状态

pushy workflow auth-check
pushy login-flow

完整的用户登录流程

pushy workflow login-flow

2. 应用管理工作流

pushy workflow multi-platform-app-management

跨平台应用统一管理

pushy workflow multi-platform-app-management
pushy workflow incremental-build

增量构建工作流,生成差异更新包

pushy workflow incremental-build

工作流管理命令

列出所有可用工作流

pushy list
pushy workflow

执行指定工作流

pushy workflow <workflowName>
pushy list

列出所有已注册的模块

pushy list

工作流特性

  1. 步骤化执行: 工作流由多个步骤组成,按顺序执行
  2. 结果传递: 每个步骤的结果可以传递给下一个步骤
  3. 条件执行: 支持根据条件决定是否执行某个步骤
  4. 错误处理: 内置错误处理和回滚机制
  5. 进度反馈: 实时显示执行进度和状态
  6. 参数验证: 执行前自动验证必需参数

示例项目

在项目的 example/ 目录中提供了完整的模块和工作流使用示例:

  • example/modules/ - 自定义模块示例
  • example/workflows/ - 自定义工作流示例
  • example/scripts/ - 使用脚本示例

运行示例:

# 模块注册和执行示例
npx ts-node example/scripts/register-modules.ts
 
# 工作流演示
npx ts-node example/scripts/workflow-demo.ts
 
# 增强工作流演示
npx ts-node example/scripts/enhanced-workflow-demo.ts