yargs库能够方便的处理命令行参数。

一、安装 yargs

npm install yargs --save

  

二、读取命令行参数

const yargs = require('yargs');

let argv = yargs.argv;
console.log(argv);

argv 对象用来保存命令行参数,传递参数时,参数名以 -- 开头,中间使用 = 或 空格,然后接上值 。

argv 有一个 下划线 属性,该属性用来获取非连词线开头的参数

const yargs = require('yargs');

let argv = yargs.argv;
console.log(argv._);

还可以给参数名取一个别名。

const yargs = require('yargs');

let argv = yargs
.alias('n', 'name')
.alias('s', 'save')
.alias('w', 'width')
.argv; console.log(argv);

.demandOption(key, msg) 是否必须填写

.default(key, value, [description]) 设置默认值

.describe(key, desc) 命令描述信息

const yargs = require('yargs');

let argv = yargs
.alias('s', 'src')
.alias('d', 'dst')
.demandOption(['s', 'd'], 's 与 d 必须填写')
.default('s', 'a.txt')
.default('d', 'b.txt')
.describe('s', '源文件')
.describe('d', '目标文件')
.argv; console.log(argv);

我们可以通过 .option(key, [opt]) 配置所有设置

const yargs = require('yargs');

let argv = yargs
.option('s', {
alias: 'src',
demandOption: true,
default: 'a.txt',
describe: '源文件',
type: 'string'
})
.option('d', {
alias: 'dst',
demandOption: true,
default: 'b.txt',
describe: '目标文件',
type: 'string'
})
.argv; console.log(argv);

有些时候我们只想知道某些参数有没有设置,是 true 或是 false。

通过 .boolean(key) 解析参数为布尔值。

const yargs = require('yargs');

let argv = yargs
.alias('s', 'save')
.boolean(['s'])
.argv; console.log(argv);

.usage() 用法格式

.example(cmd, desc) 提供例子

.help() 帮助信息

.epilog(str) 在帮助信息尾部显示

const yargs = require('yargs');

let argv = yargs
.alias('s', 'save')
.usage('Usage: --s <filename>')
.example('--s a.txt', '设置源文件')
.epilog('copyright')
.help('info')
.argv; console.log(argv);

  

最新文章

  1. zabbix完整安装
  2. C# BackgroundWorker的使用
  3. js 让浏览器全屏模式的方法launchFullscreen
  4. Windows 8及以上系统安装好SQL Server 2008之后找不到SQL Server配置管理器的问题
  5. CentOs5.8下安装Oracle12C
  6. zabbix使用host metadata方式主动注册
  7. 那些年我们没能bypass的xss filter
  8. CentOS 7 (无盘安装)PXE服务器的搭建(失败求助版)
  9. Oracle Grid Infrastructure: Understanding Split-Brain Node Eviction (文档 ID 1546004.1)
  10. uva 542 - France &#39;98(概率)
  11. #define使用方法
  12. VBA Excel 单元格操作
  13. 浅谈PHP代码设计结构
  14. LinearLayout遇到的问题——利用LinearLayout做横向滑动冲突
  15. Java 重写(Override)与重载(Overload)
  16. C#对象序列化笔记
  17. Android开发之基于监听的事件处理
  18. Mac下使用SSH(密钥)访问Github
  19. Python之路(第三十九篇)管道、进程间数据共享Manager
  20. Confluence 6 修改站点标题

热门文章

  1. Javascript var 和 let 的区别
  2. 汉语言处理工具pyhanlp的拼音转换与字符正则化
  3. Hadoop与MPP是什么关系?有什么区别和联系?
  4. Java Web参考资料
  5. [蓝桥杯]PREV-8.历届试题_买不到的数目
  6. 简谈OSI七层模型(网络层)
  7. ios怎么让状态栏颜色和导航栏背景图片颜色一样
  8. c#中使用excel
  9. django 开发之前后端分离开发模式
  10. IDEA jrebet插件安装