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 去除Array中的null值示例代码
Nov 20 Javascript
利用javascript判断文件是否存在
Dec 31 Javascript
JS扩展方法实例分析
Apr 15 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
Jun 05 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
Nov 13 Javascript
Angular开发者指南之入门介绍
Mar 05 Javascript
vue实现留言板todolist功能
Aug 16 Javascript
微信小程序支付之c#后台实现方法
Oct 19 Javascript
js 图片转base64的方式(两种)
Apr 24 Javascript
微信小程序移动拖拽视图-movable-view实例详解
Aug 17 Javascript
浅谈layui分页控件field参数接收对象的问题
Sep 20 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
Nov 12 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插件 HTMLPurifier HTML解析器
2013/07/01 PHP
php实现仿写CodeIgniter的购物车类
2015/07/29 PHP
Nginx环境下PHP flush失效的解决方法
2016/10/19 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
document.open() 与 document.write()的区别
2007/08/13 Javascript
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
jquery按回车提交数据的代码示例
2013/11/05 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
使用纯javascript实现放大镜效果
2015/03/18 Javascript
JavaScript实现常用二级省市级联下拉列表的方法
2015/03/25 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
2016/04/18 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
ssm+vue前后端分离框架整合实现(附源码)
2020/07/08 Javascript
python的即时标记项目练习笔记
2014/09/18 Python
简介Django框架中可使用的各类缓存
2015/07/23 Python
python从子线程中获得返回值的方法
2019/01/30 Python
Python实现的调用C语言函数功能简单实例
2019/03/13 Python
python 提取文件指定列的方法示例
2019/08/07 Python
django实现web接口 python3模拟Post请求方式
2019/11/19 Python
Python搭建HTTP服务过程图解
2019/12/14 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
Lookfantastic澳大利亚官网:英国知名美妆购物网站
2021/01/07 全球购物
三维科技面试题
2013/07/27 面试题
毕业生就业推荐信范文
2013/12/01 职场文书
学校创先争优活动总结
2014/08/28 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android