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中使用yargs来处理命令行参数的更多相关文章
- 利用Node.js的Net模块实现一个命令行多人聊天室
1.net模块基本API 要使用Node.js的net模块实现一个命令行聊天室,就必须先了解NET模块的API使用.NET模块API分为两大类:Server和Socket类.工厂方法. Server类 ...
- 3.QT中QCommandLineParser和QCommandLineOption解析命令行参数
1 新建项目 main.cpp #include <QCoreApplication> #include <QCommandLineParser> #include & ...
- 在go中通过cmd调用python命令行参数量级过大问题解决
问题描述如下: 在go中使用cmd调用python命令行 cmd := exec.Command("python", "dimine/Kriging/matrix.py& ...
- Node.js实战5:操作系统与命令行。
Nodejs有一些内置的方法可以查询操作系统信息: 如: process.arch获取到系统是32位还是64位, process.platform可获取系统的类型. 例程: console.log(p ...
- python中os.path.dirname(__file__) 命令行 参数没有绝对路径导致数据库找不到
(1).当"print os.path.dirname(__file__)"所在脚本是以完整路径被运行的, 那么将输出该脚本所在的完整路径,比如: python d:/python ...
- C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例
C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...
- [C#学习笔记3]关于Main(string[ ] args)中args命令行参数
Main(string[] args)方法是C#程序的入口,程序从这里开始执行,在这里结束.C#代码逻辑要包含在一个类型(Type)中,游离的.全局的变量或函数是不存在的,这里的类型包括类(class ...
- python中命令行参数
python中的命令行参数 python中有一个模块sys,sys.argv这个属性提供了对命令行参数的访问.命令行参数是调用某个程序时除程序名外的其他参数. sys.argv是命令行参数的列表 le ...
- .NET Core采用的全新配置系统[5]: 聊聊默认支持的各种配置源[内存变量,环境变量和命令行参数]
较之传统通过App.config和Web.config这两个XML文件承载的配置系统,.NET Core采用的这个全新的配置模型的最大一个优势就是针对多种不同配置源的支持.我们可以将内存变量.命令行参 ...
随机推荐
- 如何在myeclipse中实现jquery的自动提示功能
在web开发过程中,myeclipse中jsp可以实现自动提示功能,但是jquery代码却无法实现自动提示,需要自己一个个手动去输入,效率过低,怎么办? 工具/原料 jquery 1.8.3.js ...
- SysUtils.CompareText的注释
两个字符串对象进行比较,忽略大小写,两个字符串缓冲区地址利用EAX和EDX两个寄存器传给该函数,字符串的长度用4个字节保存在缓冲区的前面,函数用EAX返回比较结果,结果为0表示相同. function ...
- C# Interview Question 1
What is C#? What's the feature of C# language? Answer:
- Properties类学习笔记
1.Properties是一个hashTable子类,但它只装String类型的值2.一个Properties集中有一个子Properties集为它的默认属性集,如果在Properties中找不到相关 ...
- win7文件夹带锁标志如何去除?win7去除文件夹带锁标志的方法
win7文件夹带锁标志如何去除?win7去除文件夹带锁标志的方法 http://www.xitongcheng.com/jiaocheng/win7_article_30333.html 具体方法如下 ...
- nginx配置分发Tomcat服务,负载均衡
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中瓦片资源越来越多,如果提高瓦片的访问效率是一个需要解决的 ...
- (转)EF5+SQLserver2012迁移到EF6+mysql5.5.47
原文地址:https://www.cnblogs.com/tinyjian/p/6235014.html:https://www.cnblogs.com/tinyjian/p/6235397.html ...
- mysql数据库优化(四)-项目实战
在flask项目中,防止随着时间的流逝,数据库数据越来越多,导致接口访问数据库速度变慢.所以自己填充数据进行测试及 mysql优化 1.插入数据: 通过脚本,使用多进程,每100次提交数据 impor ...
- 转: spring静态注入
与其说是静态注入(IOC),不如讲是对JavaBean 的静态成员变量进行赋值. 一般我们在使用依赖注入的时候,如果当前对象(javaBean )创建(实例化)一次,那么非静态的成员变量也会实例化一次 ...
- json字符串装List<Object>
List<SearchParam> ts = (List<SearchParam>) JSONArray.parseArray(jsonStr, SearchParam.cla ...