commander.js

commander.js

commander.js时node.js的轻量级,富有表现力和强大的命令行框架。

安装

  npm install commander --save

相关api:

version方法:定义命令行程序的版本号

参数说明:

.version('1.0.0', '-s, --version') 第一个参数是版本号,
 第二个参数是自定义flag 
 自定义flag可省略,默认为-V和--version
 执行 node index.js -V 或者 node index.js --version得到版本号
.parse(process.argv) process.argv是命令行信息

当自定义flag时,–version不能被忽略

const program = require('commander');

program
    .version('1.0.0', '-v, --version')
    .parse(process.argv);

option方法:定义命令的选项

 参数说明 
 .option('-a,--add','add something') 第一个参数为flag,第二个参数为当选项的描述可省略
const program = require('commander');

program
    .version('1.0.0')
    .option('-a,--add','add something')
    .option('-u,--update','update something')
    .option('-r,--remove','remove somthing')
    .parse(process.argv)
    
console.log('You choose:');

if(program.add) console.log(' add somthing')
if(program.update) console.log(' update something')
if(program.remove) console.log(' remove something')
短flag使用-,长flag使用--
执行 node index.js -a 或者 node index.js -add 会打印Youchoose:add something

多个单词形式

const program = require('commander');

program
    .version('1.0.0')
    .option('--add-file','add a file')
    .parse(process.argv);
if(program.addFile) console.log('add a file')
当选项为多单词形式时,使用驼峰形式得到输入项
执行 node index.js --add-file 会打印add a file

以–no形式开头的选项,代表后面紧跟单词的相反面

const program = require('commander');

program
    .version('1.0.0')
    .option('--no-add','not add a file')
    .parse(process.argv)
    
if(program.add) console.log('add a file')
else console.log('not add a file')
执行 node index.js --no-add 会打印not add a file

选项后面使用<>或[]

const program = require('commander');
program
    .version('1.0.0')
    .option('-a,--add <filename>','add a file')
    .parse(process.argv)
console.log('add a file named:'+program.add)
执行node index.js -a  add.js会打印 add a file named:add.js

command方法:自定义命令

参数说明:

自定义命令名称:

  • 名称<必须>

  • 命令参数<可选>:

  • <>和[]定义参数

  • 命令的最后一个参数可以是可变的,需要在数组后加入…标志:在命令后面传入的参数

  • 命令描述<可省略>

  • 配置选项<可省略>:可配置noHelp、isDefault等

 const program = require('commander');
 program
     .version('1.0.0')
     .command('my-cli <path>')
     .option('-a,--add <filename>','add a file')
     .option('-u,--update <filename>','update a file')
     .option('-r,--remove <filename>','remove a file')
     .action(function(path,cmd){
         console.log(path)
         console.log(cmd.Add)
     })

 program.parse(process.argv)
使用action后会开启输入的选项校验,若输入了未定义的选项,则抛出错误 
执行 node index.js my-cli C -a demo.js 会打印C demo.js

action 方法:定义命令的回调函数 参数说明:

注:一个command对应一个命令,也对应一个文件index-cli 命令对应bin目录下的index.js

description方法:命令的描述性语句

参数说明:

命令的描述

const program = require('commander');

program
    .version('1.0.0')
    .description('It is my cli')
    .parse(process.argv)

回调函数 parse方法:用于解析process.argv 参数说明:

process.argv
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值