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实现的论坛常用的运行代码的效果
Jul 15 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
May 24 Javascript
JQueryEasyUI datagrid框架的基本使用
Apr 08 Javascript
JS获取地址栏参数的小例子
Aug 23 Javascript
判断一个变量是数组Array类型的方法
Sep 16 Javascript
jQuery遍历对象、数组、集合实例
Nov 08 Javascript
js实现(全选)多选按钮的方法【附实例】
Mar 30 Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
Jun 12 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
Mar 08 Javascript
angular第三方包开发整理(小结)
Apr 19 Javascript
vue项目实现图片上传功能
Dec 23 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
Jan 05 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自动载入类用法实例分析
2016/06/24 PHP
PHP获取远程http或ftp文件的md5值的方法
2019/04/15 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
zeroclipboard 单个复制按钮和多个复制按钮的实现方法
2014/06/14 Javascript
深入解析JavaScript中的数字对象与字符串对象
2015/10/21 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
vue调用高德地图实例代码
2017/04/28 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
JS实现获取数组中最大值或最小值功能示例
2019/03/02 Javascript
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
在layui下对元素进行事件绑定的实例
2019/09/06 Javascript
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
[08:06]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant 选手采访
2021/03/11 DOTA
python解析html开发库pyquery使用方法
2014/02/07 Python
python 生成器生成杨辉三角的方法(必看)
2017/04/10 Python
python用户管理系统
2018/03/13 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
对Django中的权限和分组管理实例讲解
2019/08/16 Python
Django 自定义分页器的实现代码
2019/11/24 Python
tensorflow与numpy的版本兼容性问题的解决
2021/01/08 Python
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
迪奥美国官网:Dior美国
2019/12/07 全球购物
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
四下基层实施方案
2014/03/28 职场文书
团日活动总结书格式
2014/05/08 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
2014年机关党建工作总结
2014/11/11 职场文书
Python 制作自动化翻译工具
2021/04/25 Python
无线电通信名词解释
2022/02/18 无线电