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 相关文章推荐
showModelessDialog()使用详解
Sep 07 Javascript
javascript setTimeout()传递函数参数(包括传递对象参数)
Apr 07 Javascript
jquery 跳到顶部和底部动画2句代码简单实现
Jul 18 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
Nov 14 Javascript
extJS中常用的4种Ajax异步提交方式
Mar 07 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
Feb 18 Javascript
EasyUI中实现form表单提交的示例分享
Mar 01 Javascript
js实现的全国省市二级联动下拉选择菜单完整实例
Aug 17 Javascript
JS实现在状态栏显示打字效果完整实例
Nov 02 Javascript
JavaScript实现的多种鼠标拖放效果
Nov 03 Javascript
node.js中的事件处理机制详解
Nov 26 Javascript
前端vue+express实现文件的上传下载示例
Feb 18 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查看session内容的函数
2008/08/27 PHP
php中计算程序运行时间的类代码
2012/11/03 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
2013/12/25 PHP
PHP中类的继承和用法实例分析
2016/05/24 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
2017/02/23 PHP
解决Laravel5.2 Auth认证退出失效的问题
2019/10/14 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
jQuery开发者都需要知道的5个小技巧
2010/01/08 Javascript
JS下拉缓冲菜单示例代码
2013/08/30 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
关注jquery技巧提高jquery技能(前端开发必学)
2015/11/02 Javascript
Javascript函数中的arguments.callee用法实例分析
2016/09/16 Javascript
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
js HTML DOM EventListener功能与用法实例分析
2020/04/27 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
python根据路径导入模块的方法
2014/09/30 Python
Python上传package到Pypi(代码简单)
2016/02/06 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
Python中字符串List按照长度排序
2019/07/01 Python
Pytorch evaluation每次运行结果不同的解决
2020/01/02 Python
python软件都是免费的吗
2020/06/18 Python
python opencv角点检测连线功能的实现代码
2020/11/24 Python
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
网站编辑求职信
2013/10/17 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
竞聘演讲稿怎么写
2014/08/28 职场文书
党委书记群众路线对照检查材料思想汇报
2014/10/04 职场文书
总经理岗位职责范本
2015/04/01 职场文书
红色革命电影观后感
2015/06/18 职场文书
电力安全学习心得体会
2016/01/18 职场文书
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
2022/04/22 SQL Server
详解如何使用Nginx解决跨域问题
2022/05/06 Servers
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android