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 相关文章推荐
[全兼容哦]--实用、简洁、炫酷的页面转入效果loing
May 07 Javascript
namespace.js Javascript的命名空间库
Oct 11 Javascript
使用jquery实现div的tab切换实例代码
May 27 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
Jan 25 Javascript
使用coffeescript编写node.js项目的方法汇总
Aug 05 Javascript
javascript中checkbox使用方法简单实例演示
Nov 17 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
Feb 17 Javascript
AngularGauge 属性解析详解
Sep 06 Javascript
bootstrap读书笔记之CSS组件(上)
Oct 17 Javascript
JS冒泡事件与事件捕获实例详解
Nov 25 Javascript
js学习总结_选项卡封装(实例讲解)
Jul 13 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
Mar 28 jQuery
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
三国漫画《火凤燎原》宣布动画化PV放出 预计2020年播出
2020/03/08 国漫
php+iframe实现隐藏无刷新上传文件
2012/02/10 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
php制作基于xml的RSS订阅源功能示例
2017/02/08 PHP
PHP中trait使用方法详细介绍
2017/05/21 PHP
淘宝搜索框效果实现分析
2011/03/05 Javascript
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
浅谈Angular中ngModel的$render
2016/10/24 Javascript
webpack 单独打包指定JS文件的方法
2018/02/22 Javascript
vue中tab选项卡的实现思路
2018/11/25 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
微信小程序视频弹幕发送功能的实现
2020/12/28 Javascript
Python按行读取文件的简单实现方法
2016/06/22 Python
python try except 捕获所有异常的实例
2018/10/18 Python
Python实现的各种常见分布算法示例
2018/12/13 Python
详解Python中的内建函数,可迭代对象,迭代器
2019/04/29 Python
python爬虫 模拟登录人人网过程解析
2019/07/31 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
python属于软件吗
2020/06/18 Python
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
Lookfantastic意大利官网:英国知名美妆购物网站
2019/05/31 全球购物
Linux面试题LINUX系统类
2015/11/25 面试题
年终自我鉴定
2013/10/09 职场文书
素食餐饮项目创业计划书
2014/02/02 职场文书
《小小竹排画中游》教学反思
2014/02/26 职场文书
优秀团员自我评价范文
2014/04/23 职场文书
社区活动总结
2015/02/04 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
运动会新闻稿
2015/07/17 职场文书
JS封装cavans多种滤镜组件
2022/02/15 Javascript