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类 from qq
Nov 13 Javascript
JavaScript XML实现两级级联下拉列表
Nov 10 Javascript
各浏览器对click方法的支持差异小结
Jul 31 Javascript
javascript运行机制之this详细介绍
Feb 07 Javascript
JS中三目运算符和if else的区别分析与示例
Nov 21 Javascript
javascript禁止访客复制网页内容的实现代码
Aug 05 Javascript
AngularJS基础 ng-show 指令简单示例
Aug 03 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
Dec 25 jQuery
解决VUE框架 导致绑定事件的阻止冒泡失效问题
Feb 24 Javascript
详解基于Node.js的HTTP/2 Server实践
May 31 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
Aug 02 Javascript
通过实例了解JS执行上下文运行原理
Jun 17 Javascript
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
调频问题解答
2021/03/01 无线电
php获得当前的脚本网址
2007/12/10 PHP
PHP迭代器的内部执行过程详解
2013/11/12 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
PHP7 标准库修改
2021/03/09 PHP
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
网页自动跳转代码收集
2009/09/27 Javascript
jQuery UI的Dialog无法提交问题的解决方法
2011/01/11 Javascript
Jquery上传插件 uploadify v3.1使用说明
2012/06/18 Javascript
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
浅谈node的事件机制
2017/10/09 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
2018/11/26 Javascript
Vue实现表格批量审核功能实例代码
2019/05/28 Javascript
实用Javascript调试技巧分享(小结)
2019/06/18 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
python编写网页爬虫脚本并实现APScheduler调度
2014/07/28 Python
Python中比较特别的除法运算和幂运算介绍
2015/04/05 Python
Python中的is和==比较两个对象的两种方法
2017/09/06 Python
解决Python字典写入文件出行首行有空格的问题
2017/09/27 Python
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
简单实现python聊天程序
2018/04/01 Python
Python虚拟环境的创建和使用详解
2020/09/07 Python
Python截图并保存的具体实例
2021/01/14 Python
美国在线乐器和设备商店:Musician’s Friend
2018/07/06 全球购物
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
澳大利亚排名第一的露营和户外设备在线零售商:Outbax
2020/05/06 全球购物
会计电算化个人自我评价
2013/11/17 职场文书
银行实习的自我鉴定
2013/12/10 职场文书
2014年保密工作总结
2014/11/22 职场文书
超强台风观后感
2015/06/09 职场文书
2015年国庆节标语大全
2015/07/30 职场文书
十大最强飞行系宝可梦,BUG燕上榜,第二是飞行系王者
2022/03/18 日漫