准备工作

  • 安装nodejs
  • 安装commander.js,执行npm install commander --save

version方法

作用:定义命令程序的版本号

参数说明:

  • 版本号<必须>
  • 自定义flag<可省略>,默认为 -V--version

使用:

(1)只传入版本信息

  1. // index.js

  2. const program = require('commander');

  3. program

  4. .version('1.0.0')

  5. .parse(process.argv);

  6. 复制代码

  • 执行node index.js -V 或者 node index.js --version得到版本号。

(2)自定义flag

  1. // index.js

  2. const program = require('commander');

  3. program

  4. .version('1.0.0', '-v, --version')

  5. .parse(process.argv);

  6. 复制代码

  • 当自定义flag时,--version不能被省略
  • 执行node index.js -v或者 node index.js --version得到版本号。

option方法

作用:定义命令的选项

参数说明:

  • 自定义flag<必须>

    • 一长一短的flag,中间可以逗号、竖线或空格隔开
    • flag后面可以跟参数,<>定义必需参数,[]定义可选参数
  • 选项的描述<可省略>:在使用-h或者--help时会显示
  • 选项的默认值<可省略>

使用

(1)定义多个选项

  1. // index.js

  2. const program = require('commander');

  3. program

  4. .version('1.0.0')

  5. .option('-a, --add', 'add Something')

  6. .option('-u, --update', 'update Something')

  7. .option('-r, --remove', 'remove Something')

  8. .parse(process.argv);

  9. console.log('You choose: ');

  10. if (program.add) console.log(' add Something');

  11. if (program.update) console.log(' update Something');

  12. if (program.remove) console.log(' remove Something');

  13. 复制代码

  • 短flag使用-,长flag使用--
  • program.XXX可以得到输入的选项
  • 执行node index.js -a或者node index.js --add会打印You choose: add Something

(2)多单词形式

  1. // index.js

  2. const program = require('commander');

  3. program

  4. .version('1.0.0')

  5. .option('--add-file', 'add a file')

  6. .parse(process.argv);

  7. if (program.addFile) console.log('add a file')

  8. 复制代码

  • 当选项为多单词形式时,使用驼峰形式得到输入项
  • 执行node index.js --add-file会打印add a file

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

  1. // index.js

  2. const program = require('commander');

  3. program

  4. .version('1.0.0')

  5. .option('--no-add', 'not add a file')

  6. .parse(process.argv);

  7. if (program.add) console.log('add a file')

  8. else console.log('not add a file')

  9. 复制代码

  • 执行node index.js --no-add会打印not add a file

(4)选项后面使用<>或[]

  1. // index.js

  2. const program = require('commander');

  3. program

  4. .version('1.0.0')

  5. .option('-a, --add <fileName>', 'add a file')

  6. .parse(process.argv);

  7. console.log('add a file named: ' + program.add)

  8. 复制代码

  • 执行node index.js -a demo.js会打印add a file named: demo.js

command方法

作用:自定义命令

参数说明:

  • 自定义命令名称

    • 名称<必须>
    • 命令参数<可选>:
      • <>[]定义参数
      • 命令的最后一个参数可以是可变的,需要在数组后面加入 ... 标志;在命令后面传入的参数会
  • 命令描述<可省略>
  • 配置选项<可省略>:可配置noHelp、isDefault等

使用

  1. const program = require('commander');

  2. program

  3. .version('1.0.0')

  4. .command('my-cli <path>')

  5. .option('-a, --add <fileName>', 'add a file')

  6. .option('-u, --update <fileName>', 'update a file')

  7. .option('-r, --remove <fileName>', 'remove a file')

  8. .action(function(path, cmd) {

  9. console.log(path)

  10. console.log(cmd.add)

  11. })

  12. program.parse(process.argv);

  13. 复制代码

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

description方法

作用:命令的描述性语句

参数说明

  • 命令的描述

使用

  1. // index.js

  2. const program = require('commander');

  3. program

  4. .version('1.0.0')

  5. .description('It is my cli')

  6. .parse(process.argv);

  7. 复制代码

action方法

作用:定义命令的回调函数

参数说明:

  • 回调函数

parse方法

作用:用于解析process.argv,设置options以及触发commands

参数说明:

  • process.argv

转自commander.js基本用法_weixin_33905756的博客-CSDN博客

commander.js基本用法相关推荐

  1. commander.js使用及源码分析

    commander.js commander是一个轻巧的nodejs模块,提供了用户命令行输入和参数解析强大功能. commander的特性: 自记录代码 自动生成帮助 合并短参数 默认选项 强制选项 ...

  2. commander.js教程笔记

    并非严格的教程博文,属于是个人在学习过程中的笔记心得汇总. 内容相对官方文档更通俗一些,入门新人,如果看不懂官方文档,可以大致看一看这个.有错的话请指正,标准的还得看官方文档. 1.commander ...

  3. 玩转 Commander.js —— 你也是命令行大师

    导语 | 最近做团队底层构建工具架构升级和命令行交互打了不少交道,再加上在研究 Vue-CLI 的源码,觉得 Commander.js 作为 Node.js 下这么优秀的命令行交互工具,值得总结一下, ...

  4. Node 系列 - 003 - commander.js

    ----------☆☆☆---------- Node 系列相应地址: 代码仓库:https://github.com/LiangJunrong/all-for-one 文章仓库:https://g ...

  5. commander.js

    参考链接: http://yijiebuyi.com/blog/2cd3833e8551a302b4ec645031bfd3d0.html http://blog.gejiawen.com/2016/ ...

  6. Javascript模块化编程require.js的用法

    JS模块化工具requirejs教程(一):初识requirejs http://www.runoob.com/w3cnote/requirejs-tutorial-1.html JS模块化工具req ...

  7. Moment.js常见用法总结

    From: https://www.jianshu.com/p/9c10543420de Moment.js常见用法总结 Moment.js是一个轻量级的JavaScript时间库,它方便了日常开发中 ...

  8. Moment.js常见用法总结 1

    Moment.js常见用法总结 Moment.js是一个轻量级的JavaScript时间库,它方便了日常开发中对时间的操作,提高了开发效率. ​ 日常开发中,通常会对时间进行下面这几个操作:比如获取时 ...

  9. Toastr.js插件用法

    toastr.js插件用法 toastr.js是一个基于jQuery的非阻塞通知的JavaScript库.toastr.js可以设定四种通知模式:成功.出错.警告.提示.提示窗口的位置.动画效果等都可 ...

最新文章

  1. 量子计算机区别于冯诺依曼机的一个显著特点,大学计算机基础习题答案西安交大.doc...
  2. javascript小游戏_javaScript小游戏——网页版别踩白块
  3. SAP CRM WebClient UI上将text area里的文本清空的后台处理
  4. 【NC140 排序】手写快速排序
  5. kvm虚拟机网络设置隔离模式(一键shell脚本)
  6. 《移山之道-VSTS软件开发指南》---读书笔记
  7. Magento 获取分类的父分类和子分类
  8. Linux下实现Rsync目录同步备份
  9. ESP8266 arduino下载程序不执行的若干bug
  10. Apex英雄下载慢的解决方法|Apex英雄离线包分享
  11. SN号获取及显示不全的问题
  12. 小工具 | 横断面面积及土方量计算excel表格
  13. 视频转GIF软件哪个好用 怎么将视频转为GIF
  14. Filter 过滤器使用
  15. 沃丰科技:AI赋能泛CRM,为新企服扬风鼓帆
  16. 未来智能家居的方向是小米模式还是华为模式呢?
  17. 李宏毅2022机器学习HW2解析
  18. Python数据分析之武林秘籍
  19. 使用Git上传项目到码云
  20. 软件管家出错的情况下安装keil5

热门文章

  1. inches 和像素的换算
  2. 五邑大学安卓开发程序设计报告_五邑大学模拟电路课程设计报告模板.docx
  3. OLTP和OLAP的区别;
  4. [pytorch]yolov3.cfg参数详解(每层输出及route、yolo、shortcut层详解)
  5. word-spacing letter-spacing white-space 分辨
  6. C语言:利用函数输出PI值
  7. python名字的来历_你知道Python的由来吗
  8. Keil的安装及使用
  9. APP——功耗测试(耗电测试)——adb命令复杂获取分析
  10. 2010考研数学二第(15)题——导数应用:单调区间与极值