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中操作JSON总结
Dec 06 Javascript
node.js中的fs.lchmod方法使用说明
Dec 16 Javascript
jquery删除table当前行的实例代码
Oct 07 Javascript
浅析JS中对函数function的理解(基础篇)
Oct 14 Javascript
jQuery 获取select选中值及清除选中状态
Dec 13 Javascript
react学习笔记之state以及setState的使用
Dec 07 Javascript
Vue组件开发技巧总结
Mar 04 Javascript
jQuery实现表单动态添加数据并提交的方法
Jul 19 jQuery
Django模板继承 extend标签实例代码详解
May 16 Javascript
使用webpack搭建vue项目及注意事项
Jun 10 Javascript
微信小程序实现音乐播放器
Nov 20 Javascript
Vue-cli打包后如何本地查看的操作
Sep 02 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
强烈推荐:php.ini中文版(2)
2006/10/09 PHP
基于mysql的论坛(5)
2006/10/09 PHP
PHP中的事务使用实例
2015/05/26 PHP
jQuery+CSS3实现树叶飘落特效
2015/02/01 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
2015/09/15 Javascript
jQuery中队列queue()函数的实例教程
2016/05/03 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
Vue+Koa2+mongoose写一个像素绘板的实现方法
2019/09/10 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
Javascript实现简易天数计算器
2020/05/18 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
浅谈MySQL中的触发器
2015/05/05 Python
python下MySQLdb用法实例分析
2015/06/08 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
2016/05/03 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
Python使用flask框架操作sqlite3的两种方式
2018/01/31 Python
django允许外部访问的实例讲解
2018/05/14 Python
python多线程调用exit无法退出的解决方法
2019/02/18 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
Pytorch环境搭建与基本语法
2020/06/03 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
本科毕业生的求职信范文
2013/11/20 职场文书
十八届三中全会个人学习材料
2014/02/13 职场文书
租房协议书
2014/04/10 职场文书
学生会生活部工作总结2015
2015/03/31 职场文书
投资公司董事长岗位职责
2015/04/16 职场文书
个人工作违纪检讨书
2015/05/05 职场文书
雷锋之歌观后感
2015/06/10 职场文书
《鲁滨逊漂流记》之六读后感(4篇)
2019/09/29 职场文书
千万级用户系统SQL调优实战分享
2022/03/03 MySQL
一次Mysql update sql不当引起的生产故障记录
2022/04/01 MySQL