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 相关文章推荐
一个原生的用户等级的进度条
Jul 03 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
Mar 07 Javascript
JavaScript操作Oracle数据库示例
Mar 06 Javascript
基于insertBefore制作简单的循环插空效果
Sep 21 Javascript
JavaScript中Function函数与Object对象的关系
Dec 17 Javascript
jquery判断复选框选中状态以及区分attr和prop
Dec 18 Javascript
canvas实现钟表效果
Feb 13 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
Jan 25 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
Mar 09 Javascript
微信小程序开发(二):页面跳转并传参操作示例
Jun 01 Javascript
Element Badge标记的使用方法
Jul 27 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
Feb 08 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
让你的网站首页自动选择语言转跳
2006/12/06 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
解析CodeIgniter自定义配置文件
2013/06/18 PHP
PHP获取当前url的具体方法全面解析
2013/11/26 PHP
PHP对象相互引用的内存溢出实例分析
2014/08/28 PHP
js改变鼠标的形状和样式的方法
2014/03/31 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
jQuery+HTML5加入购物车代码分享
2020/10/29 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
jQuery动态添加与删除tr行实例代码
2016/10/18 Javascript
js中利用cookie实现记住密码功能
2020/08/20 Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
2017/01/18 Javascript
JS简单判断滚动条的滚动方向实现方法
2017/04/28 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
python设置windows桌面壁纸的实现代码
2013/01/28 Python
Python socket.error: [Errno 98] Address already in use的原因和解决方法
2014/08/25 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
python软件都是免费的吗
2020/06/18 Python
详解python with 上下文管理器
2020/09/02 Python
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
公司接待方案
2014/03/08 职场文书
高考励志标语
2014/06/05 职场文书
项目转让协议书
2014/10/27 职场文书
国际贸易实训报告
2014/11/05 职场文书
小学二年级班主任工作经验交流材料
2015/11/02 职场文书
2016简历自荐信优秀范文
2016/01/29 职场文书
2016年共产党员公开承诺书
2016/03/24 职场文书
电子表的操作介绍说明书
2019/10/28 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android
解决Laravel使用验证时跳转到首页的问题
2021/11/17 PHP
SpringBoot 整合mongoDB并自定义连接池的示例代码
2022/02/28 MongoDB
linux目录管理方法介绍
2022/06/01 Servers