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 相关文章推荐
javascript使用中为什么10..toString()正常而10.toString()出错呢
Jan 11 Javascript
利用JavaScript检测CPU使用率自己写的
Mar 22 Javascript
js获取隐藏元素宽高的实现方法
May 19 Javascript
AngularJS入门教程之静态模板详解
Aug 18 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
Sep 19 Javascript
使用Node.js给图片加水印的方法
Nov 15 Javascript
Bootstrap 3 进度条的实现
Feb 22 Javascript
微信小程序实现星星评价效果
Nov 02 Javascript
egg.js的基本使用和调用数据库的方法示例
May 18 Javascript
解决vue中使用less/sass及使用中遇到无效的问题
Oct 24 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
Nov 05 Javascript
JavaScript实现图片合成下载的示例
Nov 19 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入门之连接mysql数据库的一个类
2012/04/21 PHP
『PHP』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
php中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
2011/07/27 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
2013/12/22 Javascript
js读取cookie方法总结
2014/10/31 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
2015/09/16 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
浅谈node模块与npm包管理工具
2018/01/03 Javascript
javaScript中&quot;==&quot;和&quot;===&quot;的区别详解
2018/03/16 Javascript
Vue 项目代理设置的优化
2018/04/17 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
2020/07/16 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
[05:00]第二届DOTA2亚洲邀请赛主赛事第三天比赛集锦.mp4
2017/04/04 DOTA
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
Python封装shell命令实例分析
2015/05/05 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
Django项目开发中cookies和session的常用操作分析
2018/07/03 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
TFRecord文件查看包含的所有Features代码
2020/02/17 Python
在python中利用dict转json按输入顺序输出内容方式
2020/02/27 Python
中学生打架检讨书
2014/02/10 职场文书
《阳光》教学反思
2014/02/23 职场文书
环保倡议书50字
2014/05/15 职场文书
2014年小学数学工作总结
2014/12/12 职场文书
欢迎词范文
2015/01/27 职场文书
警告通知
2015/04/25 职场文书
简短清晨问候语
2015/11/10 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫