node.js使用yargs处理命令行参数操作示例


Posted in Javascript onFebruary 11, 2020

本文实例讲述了node.js使用yargs处理命令行参数。分享给大家供大家参考,具体如下:

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);

希望本文所述对大家node.js程序设计有所帮助。

Javascript 相关文章推荐
JS 判断undefined的实现代码
Nov 26 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
Jul 28 Javascript
JS事件在IE与FF中的区别详细解析
Nov 20 Javascript
js模拟点击以提交表单为例兼容主流浏览器
Nov 29 Javascript
javascript实现动态统计图开发实例
Nov 21 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
Jan 28 Javascript
AngularJS中一般函数参数传递用法分析
Nov 22 Javascript
微信小程序block的使用教程
Apr 01 Javascript
jquery实现垂直无限轮播的方法分析
Jul 16 jQuery
微信小程序实现电子签名并导出图片
May 27 Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
Sep 21 Javascript
使用vue3重构拼图游戏的实现示例
Jan 25 Vue.js
node.js实现http服务器与浏览器之间的内容缓存操作示例
Feb 11 #Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
Feb 11 #Javascript
JavaScript实现拖拽功能
Feb 11 #Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
Feb 11 #Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
Feb 11 #Javascript
原生js实现点击轮播切换图片
Feb 11 #Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
Feb 11 #Javascript
You might like
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
Javascript的闭包
2009/12/31 Javascript
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
Javascript 实现图片无缝滚动
2014/12/19 Javascript
jQuery实现切换页面过渡动画效果
2015/10/29 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
2016/03/05 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
2017/04/20 Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
2017/07/31 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
2019/07/18 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
使用python编写简单的小程序编译成exe跑在win10上
2018/01/15 Python
python Opencv将图片转为字符画
2021/02/19 Python
python实现自动登录后台管理系统
2018/10/18 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
2018/12/05 Python
详解Python 函数如何重载?
2019/04/23 Python
Puppeteer使用示例详解
2019/06/20 Python
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
2020/06/28 Python
Python通过format函数格式化显示值
2020/10/17 Python
Tory Burch美国官方网站:美国时尚生活品牌
2016/08/01 全球购物
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
高中体育教学反思
2014/01/29 职场文书
煤矿安全协议书
2014/08/20 职场文书
旅行社计调工作总结
2015/08/12 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
合同范本之电脑出租
2019/08/13 职场文书
python 如何在list中找Topk的数值和索引
2021/05/20 Python
Go 语言结构实例分析
2021/07/04 Golang
Java中生成微信小程序太阳码的实现方案
2022/06/01 Java/Android