commander.js
# nodejs模块,提供了用户命令行输入和参数解析强大功能
https://github.com/tj/commander.js
全局安装
npm install commander -g
属性
.args
除开指令外的参数 数组形式
主要方法
.option("-a,--b ",'注释',默认值); .requiredOption() 必填不传此命令会报错
/*
a是简称
b是全称
<char>参数=的值的占位符如果没有就是返回boolean
*/
.command('a').description('简介').argument('string').option("-a,--b ").action((str, options)=>{})
/*等同于option 可以设置嵌套指令
1.command: 设置主指令
2.description:设置介绍
3.argument:<string> 二级指令占位符
4.option:设置二级指令
5.action:最后二级指令参数逻辑处理函数
*/
.version
//写入版本号 -v 展示
.action
//逻辑处理 this.args 变量获取数组
.argument
//注册参数 没有 -- 或者 -
.opts
//返回输入命令携带的的参数对象
.parse
//解析启动函数 开关
.hook //下个指令解析之前运行 可以修改环境变量 影响下个指令解析 .addOption
//addOption() 动态添加指令
//.choices 限制选择内容
//.default 设置默认值
//.implies 触发一个指令可以静默设置其他未输入的指令值
//.preset("20") 设置默认数字
//.argParser(parseFloat) //追加数字转换方法
//.env('xxx') //PORT=9001 node options-env.js 前置指令(优先级低)
addOption(new Option('-d, --drink <size>', 'drink cup size').choices(['small', 'medium', 'large']))
小知识
1.例如`-d -s -p cheese`可以写成`-ds -p cheese`甚至`-dsp cheese`。
2.option('--no-cheese'); --no 开始的指令 cheese默认为true 带上了才是false