Commander

Commander.js

Install(安装)

npm i commander

API(常见)

version

var program = require("commander");
program
	.version('0.0.1');
	.parse(process.argv);

// 执行结果
node index.js -V
0.0.1
#如果希望程序响应 -v 选项而不是 -V,只需使用与option方法相同的语法将自定义标志传给version方法
program.version('0.0.1', '-v, --version')
#如果不想在这里自定义,也可以通过package.json文件来获取
program.version(require('./pacjage.json').version)
	

option

var program = require("commander");
program
	.option('-d --destination <destination>','a destination folder')
 	.parse(process.argv);

option方法可以接收三个参数:

  • 自定义标志必须:分为长短标识,中间用逗号、竖线或者空格分隔;标志后面可跟必须参数或可选参数,前者用<>包含,后者用[]包含
  • 选项描述省略不报错:在使用 --help 命令时显示标志描述
  • 默认值可省略:当没有传入参数时会使用默认值

command

该方法允许使用命令行去执行一段命令(添加命令名称)

var program = require('commander');
program
	.version('0.0.1', '-V, --version');
	.command('rm <dir>');
	.action(funvtion (dir, cmd){
          console.log('remove ' + dir + (cmd.recursive ? 'recursively' : ''))
  });
program.parse(process.argv);
//  执行命令
//  node index rm /aaa -r
//  输出结果
//  remove /aaa recursively 

command函数可以接受三个参数:

  • 命令名称必须:命令后面可跟用<>[]包含对参数,命令的最后一个参数可以是可变的
  • 命令描述可省略:如果存在,且没有显示调用action(fn),就回启动子命令程序,否则会报错
  • 配置选项可省略:可配置 noHelp,isDefault

alias description usage

定义命令的别名,描述和用法

const program = require("commander");
program
	.alias('c')
	.usage('[clone] <file ...>')
  .description('clone respository into a folder')

action

定义命令的回调函数,.action(fn)

// index.js
const program = require("commander");
const {createProjectAction} = require("./actions");
program
  .command('create <project> [others...]')
  .description('clone respository into a folder')
  .action(createProjectAction)

// actions.js
const {promisify} = require("util");
const createProjectAction = async (project) => {
    
}
module.exports = createProjectAction;

自定义帮助

可以通过监听 --help 来控制 -h,–help显示任何消息。调用完成后,commander将自动退出,程序的其余部分不会展示

var program = require('commander');
program.version('0.1.0');
// 增加自己的options
program.option('-l --lemon', 'a lemon test');
program.option('-d --destination <destination>','a destination folder');
program.option('-f --framework <framework>', 'your framework');

// 增加其他的options
program.on('--help', function(){
  console.log("");
  console.log("Other:");
  console.log("  other options"); 
})  

/* 输出
Options:
  -l --lemon                      a lemon test
  -d --destination <destination>  a destination folder
  -f --framework <framework>      your framework
Other:
  other options
*/

.outputHelp(cb)

输出帮助信息而不退出,回调cb允许在显示帮助文本之前对其进行后处理,如果要在默认情况下显示帮助,可以使用下面:

var program = require('commander');
var color = require('colors');

program.version('0.1.0');
program..command('getstream [url]', 'get stream URL'')
program.parse(process.argv);
if (!process.argv.slice(2).length) {
  program.outputHelp(make_red);
}
function make_red(txt) {
  return colors.red(txt); 
  //display the help text in red on the console
}
  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值