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 相关文章推荐
jValidate 基于jQuery的表单验证插件
Dec 12 Javascript
JavaScript 布尔操作符解析  &amp;&amp; || !
Aug 10 Javascript
在javascript中实现函数数组的方法
Dec 25 Javascript
js调用后台、后台调用前台等方法总结
Apr 17 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
Oct 17 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
Sep 18 Javascript
Javascript中call,apply,bind方法的详解与总结
Dec 12 Javascript
js实现微博发布小功能
Jan 12 Javascript
Angular HMR(热模块替换)功能实现方法
Apr 04 Javascript
解决vue router组件状态刷新消失的问题
Aug 01 Javascript
探秘vue-rx 2.0(推荐)
Sep 21 Javascript
js中数组常用方法总结(推荐)
Apr 09 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 读取文件乱码问题
2010/02/20 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
php中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
ThinkPHP模板自定义标签使用方法
2014/06/26 PHP
PHP将字符分解为多个字符串的方法
2014/11/22 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
php使用scandir()函数扫描指定目录下所有文件示例
2019/06/08 PHP
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
滚动图片效果 jquery实现回旋滚动效果
2013/01/08 Javascript
js数组的操作详解
2013/03/27 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
jQuery中DOM节点的删除方法总结(超全面)
2017/01/22 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
js+canvas绘制图形验证码
2020/09/21 Javascript
Python NumPy库安装使用笔记
2015/05/18 Python
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
使用Python读取二进制文件的实例讲解
2018/07/09 Python
python实现超市商品销售管理系统
2019/11/22 Python
python中get和post有什么区别
2020/06/19 Python
python 基于selenium实现鼠标拖拽功能
2020/12/24 Python
pip install命令安装扩展库整理
2021/03/02 Python
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
机电专业毕业生推荐信
2013/11/10 职场文书
保证书格式
2015/01/16 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书
小学秋季运动会加油口号及加油稿
2019/08/19 职场文书
Python字典的基础操作
2021/11/01 Python