【nodejs学习笔记】commanderjs 的使用

Commander.js

commander.js 是node.js命令行界面的完整解决方案

参考材料:
[Commander.js 的官方文档 ] (http://tj.github.io/commander.js/)
中文文档翻译
github
简书

1. 安装

  • npm install commander

2. 声明 program 变量

  • JS
    直接引入对象
    const { program } = require(‘commander’);
    program.version(‘0.0.1’);

  • Typescript
    // index.ts
    import { Command } from ‘commander’;
    const program = new Command();

3. 选项

Commander 使用.option()方法来定义选项,同时可以附加选项的简介。每个选项可以定义一个短选项名称(-后面接单个字符)和一个长选项名称(–后面接一个或多个单词),使用逗号、空格或|分隔。

program
.option(‘-e | --env’,‘from which env!’)

解析后的选项可以通过Command对象上的.opts()方法获取,同时会被传递给命令处理函数。可以使用.getOptionValue()和.setOptionValue()操作单个选项的值。

program
  .option('-e | --env','from which env!');
program.parse()
console.log(program.opts()) // {env: dev}
console.log(program.getOptionValue('env')) // dev

program.usage('hello world')
  .option('-fe, --from_env <value>', 'specify from which dynamoDB table')

program.parse(process.argv);

3.1. 常用选项类型,boolean 型选项和带参数选项

有两种最常用的选项,一类是 boolean 型选项,选项无需配置参数;另一类选项则可以设置参数(使用尖括号声明在该选项后,如–expect )。如果在命令行中不指定具体的选项及参数,则会被定义为undefined。

program
  .option('-d, --debug', 'debug is boolean')
  .option('-t, --type <type>', 'type have value');

3.2 选项的默认值

选项可以设置一个默认值。

program
  .option('-t, --type <type>', 'the type is', 'typeA');
 
program.parse();

3.3. 其他的选项类型,取反选项,以及可选参数的选项

可以定义一个以 no- 开头的 boolean 型长选项。在命令行中使用该选项时,会将对应选项的值置为 false。当只定义了带 no- 的选项,未定义对应不带 no- 的选项时,该选项的默认值会被置为 true。

如果已经定义了 --foo,那么再定义 --no-foo并不会改变它本来的默认值。可以为一个 boolean 类型的选项指定一个默认的布尔值,在命令行里可以重写它的值。

program
  .option('--no-A', 'Remove A')
  .option('--B <type>', 'type1', 'type2')
  .parse();
 

3.4. 必填选项

通过.requiredOption()方法可以设置选项为必填。必填选项要么设有默认值,要么必须在命令行中输入,对应的属性字段在解析时必定会有赋值。该方法其余参数与.option()一致。

program
  .requiredOption('-t, --type <type>', 'type must be had');
 
program.parse();

3.5. 变长参数选项

定义选项时,可以通过使用…来设置参数为可变长参数。在命令行中,用户可以输入多个参数,解析后会以数组形式存储在对应属性字段中。在输入下一个选项前(-或–开头),用户输入的指令均会被视作变长参数。与普通参数一样的是,可以通过–标记当前命令的结束。

program
  .option('-n, --number <numbers...>', 'specify numbers')
  .option('-l, --letter [letters...]', 'specify letters');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值