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 相关文章推荐
30分钟就入门的正则表达式基础教程
Feb 25 Javascript
js判断滚动条是否已到页面最底部或顶部实例
Nov 20 Javascript
jQuery+CSS3实现树叶飘落特效
Feb 01 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
Apr 26 Javascript
Angularjs 实现分页功能及示例代码
Sep 14 Javascript
AngularJS之页面跳转Route实例代码
Mar 10 Javascript
js自定义瀑布流布局插件
May 16 Javascript
原生JavaScript实现todolist功能
Mar 02 Javascript
Vue中v-for的数据分组实例
Mar 07 Javascript
Vue+Express实现登录注销功能的实例代码
May 05 Javascript
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
Dec 25 Vue.js
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 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和XSL stylesheets转换XML文档
2006/10/09 PHP
JS模拟多线程
2007/02/07 Javascript
javascript 全角转换实现代码
2009/07/17 Javascript
图片onload事件触发问题解决方法
2011/07/31 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
javascript函数定义的几种区别小结
2014/01/06 Javascript
JavaScript中的方法调用详细介绍
2014/12/30 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
jQuery获取元素父节点的方法
2016/06/21 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
用JS实现简单的登录验证功能
2017/07/28 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
2017/12/01 Javascript
layer iframe 设置关闭按钮的方法
2019/09/12 Javascript
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
Vue学习之axios的使用方法实例分析
2020/01/06 Javascript
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
2020/04/03 Javascript
vue实现选中效果
2020/10/07 Javascript
[34:39]Secret vs VG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
Python 通过URL打开图片实例详解
2017/06/01 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
python保留小数位的三种实现方法
2020/01/07 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
python中四舍五入的正确打开方式
2021/01/18 Python
联想新加坡官方网站:Lenovo Singapore
2017/10/24 全球购物
璀璨的珍珠、密钉和个性化珠宝:Lily & Roo
2021/01/21 全球购物
车工岗位职责
2013/11/26 职场文书
新学期开学标语2015
2015/07/16 职场文书
golang import自定义包方式
2021/04/29 Golang
Ajax请求超时与网络异常处理图文详解
2021/05/23 Javascript
Python中的tkinter库简单案例详解
2022/01/22 Python
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技