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 相关文章推荐
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
May 24 Javascript
JS实现的不规则TAB选项卡效果代码
Sep 18 Javascript
JS实现复制功能
Mar 01 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
May 10 Javascript
微信小程序后台解密用户数据实例详解
Jun 28 Javascript
js实现多张图片延迟加载效果
Jul 17 Javascript
node跨域转发 express+http-proxy-middleware的使用
May 31 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
Jul 02 Javascript
解决Vue中 父子传值 数据丢失问题
Aug 27 Javascript
vux-scroller实现移动端上拉加载功能过程解析
Oct 08 Javascript
vue 动态表单开发方法案例详解
Dec 02 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
div li的多行多列 无刷新分页示例代码
2013/10/16 PHP
php 不使用js实现页面跳转
2014/02/11 PHP
PHP实现搜索相似图片
2015/09/22 PHP
CSS常用网站布局实例
2008/04/03 Javascript
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
javascript 面向对象 function类
2010/05/13 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
JavaScript中的对象与JSON
2015/07/03 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
2016/06/13 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
2017/03/08 Javascript
详解如何使用webpack打包Vue工程
2017/05/27 Javascript
yarn的使用与升级Node.js的方法详解
2017/06/04 Javascript
jQuery第一次运行页面默认触发点击事件的实例
2018/01/10 jQuery
layui实现文件或图片上传记录
2018/08/28 Javascript
在小程序中使用canvas的方法示例
2018/09/17 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
python写日志封装类实例
2015/06/28 Python
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
Django Admin实现三级联动的示例代码(省市区)
2018/06/22 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
python统计文章中单词出现次数实例
2020/02/27 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
Europcar美国/加拿大:预订汽车或卡车租赁服务
2018/11/13 全球购物
2019年分享net面试的经历和题目
2016/08/07 面试题
linux面试题参考答案(10)
2016/10/26 面试题
质量标语大全
2014/06/12 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话
2014/10/21 职场文书
民主生活会汇报材料
2014/12/15 职场文书
亲戚关系证明
2015/06/24 职场文书
领导视察通讯稿
2015/07/18 职场文书
Python趣味实战之手把手教你实现举牌小人生成器
2021/06/07 Python
Redis批量生成数据的实现
2022/06/05 Redis