yargs库能够方便的处理命令行参数。
一、安装 yargs
1
| npm install yargs --save
|
二、读取命令行参数
1 2 3 4
| const yargs = require('yargs'); let argv = yargs.argv; console.log(argv);
|
argv 对象用来保存命令行参数,传递参数时,参数名以 – 开头,中间使用 = 或 空格,然后接上值 。
argv 有一个 下划线 属性,该属性用来获取非连词线开头的参数
1 2 3 4
| const yargs = require('yargs'); let argv = yargs.argv; console.log(argv._);
|
还可以给参数名取一个别名。
1 2 3 4 5 6 7 8 9
| 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) 命令描述信息
1 2 3 4 5 6 7 8 9 10 11 12 13
| 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]) 配置所有设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| 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) 解析参数为布尔值。
1 2 3 4 5 6 7 8
| const yargs = require('yargs'); let argv = yargs .alias('s', 'save') .boolean(['s']) .argv; console.log(argv);
|
.usage() 用法格式
.example(cmd, desc) 提供例子
.help() 帮助信息
.epilog(str) 在帮助信息尾部显示
1 2 3 4 5 6 7 8 9 10 11
| 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);
|