1.2.1 • Published 2 years ago

@kbeaver/cli-command-launch v1.2.1

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

@kbeaver/cli-command-launch

Usage

命令需要项目已配置 kb.json 里的 launch 属性

# 在项目可以直接运行次命令
# 可用 command 需要在项目根目录下配置 kb.json 文件里的 launch 属性
$ kb lc <command> [arguments...]

# 可指定项目位置
$ kb lc -rp [project path] <command> [arguments...]

launch 配置

kb.json

schema : https://config.kbeaver.cn/files/kb.schema.json

{
  // 项目使用的管理工具
  "packageManage": "pnpm",
  // 启动器配置
  "launchs": {
    // 脚本命令名称
    // 如果 type 为 package,脚本命令名称必须和 package.json 里的命令名称对应
    "dev": {
      // 脚本命令作用说明
      "description": "说明",
      // 命令类型,可选类型 exec, package
      // exec: 执行配置 command 里的命令,输入的参数会替换对应的模板字符串
      // package: 执行package.json 里的对应命令,只能设置 env 环境变量,launch 下的命令名称必须对应 package 里的命令
      "type": "exec",
      // 命令模板(type值是exec时生效)
      // 可使用模板字符串:${packageManage}、${options}、${arguments}
      // 模板字符串可不用,
      "command": "${packageManage} ${options} run ${arguments}",
      // 线程配置,如果需要拆分多个独立线程并行执行的,需要配置次项
      "thread": {
        // 拆分目标,从提取的 options 拆分
        // 可选值:'options' | 'env' | 'arguments'
        "split": "options",
        // 剩余参数匹配规则
        // key:从哪里配置,可选值 'options' | 'env' | 'arguments',
        // pattern:* 表示匹配所有,& 表示匹配一个参数
        "match": [{ "key": "env", "pattern": "*" }]
      },
      // 参数转换规则
      "rules": {
        // 环境变量配置
        "env": {
          // 属性 key 必须是0-9的数字字符或*,不可配置其它值
          // 数字key表示对应索引的输入 env 值,
          // * 表示对应所有输入的 env 值,只有在匹配不到索引的配置时匹配
          // eg:
          // 如数 -e aa bb cc
          // 匹配为 [{ENV_000: aa}, {ENV_XXX: bb}, {ENV_XXX: cc}]
          "*": "ENV_XXX",
          "0": "ENV_000"
        },
        // 命令 options 配置
        // 规则同上
        "options": {
          "*": "--filter"
        },
        // 命令 arguments 配置
        // key 规则同上
        // @符号开头的是映射指示符,可选值 @env, @options,@arguments
        // @env和@options 可使用反斜杠(/)来指定使用那个对应的规则
        // @arguments 是为了显示的指示对应索引 argument 映射为 argument
        "arguments": {
          // 第一个 argument 使用 env 里 key 是 0 的规则转换
          "0": "@env/0",
          // 第二个 argument 使用 @options 里的 * 规则转换
          "1": "@options/*",
          // 映射为 argument 参数
          "*": "@arguments"
        }
      }
    }
  }
}