当前位置: 首页 > news >正文

脚手架 --- command框架<一>

版本:6.0.0
假设脚手架名称:big-cat-cli

实例化

const commander = require('commander')
const program = new commander.Command()

program

在这里插入图片描述

基本信息配置

program.name(Object.keys(pkg.bin)[0]) // 赋值name, 显示在useage 前部分.usage('<command> [options]').version(pkg.version) // 赋值version.parse(argv) // 解析参数

打印帮助文档

Program.outputHelp()

效果等同于big-cat-cli -h, 输入big-cat-cli 或big-cat-cli -d 或big-cat-cli init -d都能打印
在这里插入图片描述
如果需要 big-cat-cli init -d 时不打印:
在这里插入图片描述

option用法

1、option -> 定义选项, 三个参数,(‘-简称, --全称’, ‘这是option的描述’, ‘这是option的默认值’)

program.option('-d, --debug', '这是描述:是否开启调试模式', false)

注意: 全称后面没有参数默认是布尔类型,如果值为strng, 需要写成–全称 <参数>, 尖括号表示必填参数

program.option('-p, --path <path>', '这是一个参数是string的option', '')

2、监听option

// 监听的是全称,执行简称也能监听到
program.on('option:path', () => {console.log(program.path)})

效果:
在这里插入图片描述
3、全局option挂载到program上,通过program.xxx就能获取
在这里插入图片描述

4、option可以是全局的也可以是command的

command

1、注册command:

program.command('init [projectName]').description('初始化项目').option('-f, --force', '是否强制初始化项目').action((projectName, cmdObj) => {console.log(`projectName: ${projectName}, cmdObj: ${cmdObj.force}`)})

在这里插入图片描述
注册完后,帮助文档里面就有了
在这里插入图片描述
2、注册的命令init中获取全局option path

.action((projectName, cmdObj) => {console.log(`projectName: ${projectName}, cmdObj: ${cmdObj.parent.path}`)})

在这里插入图片描述

注意: 当命令多级嵌套的时候,最里面的command拿到的 cmdObj.paraent就不是最外层的

----未完待续—

http://www.lryc.cn/news/98948.html

相关文章:

  • SpringBoot整合Zookeeper
  • Java和C#选哪个?
  • 首批!棱镜七彩通过汽车云-汽车软件研发效能成熟度模型能力评估
  • 【Docker】容器的数据卷
  • CentOS7安装jenkins
  • Hadoop的伪分布式安装方法
  • iOS 应用上架的步骤和工具简介
  • 【信号去噪】基于马氏距离和EDF统计(IEE-TSP)的基于小波的多元信号去噪方法研究(Matlab代码实现)
  • 智驾SOC shell编程应用实战笔记
  • C#实现计算题验证码
  • 【lesson6】Linux下:第一个小程序,进度条代码
  • PostgreSQL实战-pg13主从复制切换测试
  • 如何使用OpenCV库进行图像检测
  • Mybatis中where 1=1 浅析
  • element中el-input组件限制输入条件(数字、特殊字符)
  • 会议OA项目之会议发布(一)
  • 【Android】对象为null的一个原因:在方法内部,重新创建了一个新的对象并将其赋值给原对象,但这并不会改变原始的原对象的引用
  • macbook 软件iMovie for Mac(专业视频剪辑工具)中文版
  • web APIs-练习一
  • AX88179A千兆网卡芯片,支持switch联网
  • Pytorch个人学习记录总结 05
  • windows部署安装redis安装教程
  • Jmeter post请求传参问题
  • 对Windows应用程序进行代码签名
  • 2022 China Open Source Report
  • postgresql|数据库|启动数据库时报错:FATAL: could not map anonymous shared memory的解决
  • 数字签名与数字证书
  • 基于Jquery EasyUI JSZip FileSaver的简单使用
  • git远程一个分支对应本地两个分支推送
  • SpringCloud学习—Hystrix:服务熔断