yargs
========
Yargs be a node.js library fer hearties tryin' ter parse optstrings.
With yargs, ye be havin' a map that leads straight to yer treasure! Treasure of course, being a simple option hash.
[![Build Status][travis-image]][travis-url]
[![Coverage Status][coveralls-image]][coveralls-url]
[![NPM version][npm-image]][npm-url]
[![Windows Tests][windows-image]][windows-url]
[![js-standard-style][standard-image]][standard-url]
[![Conventional Commits][conventional-commits-image]][conventional-commits-url]
[![Gitter][gitter-image]][gitter-url]
> Yargs is the official successor to optimist. Please feel free to submit issues and pull requests. If you'd like to contribute and don't know where to start, have a look at [the issue list](https://github.com/yargs/yargs/issues) :)
examples
========
With yargs, the options be just a hash!
-------------------------------------------------------------------
plunder.js:
````javascript
#!/usr/bin/env node
var argv = require('yargs').argv;
if (argv.ships > 3 && argv.distance < 53.5) {
console.log('Plunder more riffiwobbles!');
} else {
console.log('Retreat from the xupptumblers!');
}
````
***
$ ./plunder.js --ships=4 --distance=22
Plunder more riffiwobbles!
$ ./plunder.js --ships 12 --distance 98.7
Retreat from the xupptumblers!
![Joe was one optimistic pirate.](https://i.imgur.com/4WFGVJ9.png)
But don't walk the plank just yet! There be more! You can do short options:
-------------------------------------------------
short.js:
````javascript
#!/usr/bin/env node
var argv = require('yargs').argv;
console.log('(%d,%d)', argv.x, argv.y);
````
***
$ ./short.js -x 10 -y 21
(10,21)
And booleans, both long, short, and even grouped:
----------------------------------
bool.js:
````javascript
#!/usr/bin/env node
var argv = require('yargs').argv;
if (argv.s) {
process.stdout.write(argv.fr ? 'Le perroquet dit: ' : 'The parrot says: ');
}
console.log(
(argv.fr ? 'couac' : 'squawk') + (argv.p ? '!' : '')
);
````
***
$ ./bool.js -s
The parrot says: squawk
$ ./bool.js -sp
The parrot says: squawk!
$ ./bool.js -sp --fr
Le perroquet dit: couac!
And non-hyphenated options too! Just use `argv._`!
-------------------------------------------------
nonopt.js:
````javascript
#!/usr/bin/env node
var argv = require('yargs').argv;
console.log('(%d,%d)', argv.x, argv.y);
console.log(argv._);
````
***
$ ./nonopt.js -x 6.82 -y 3.35 rum
(6.82,3.35)
[ 'rum' ]
$ ./nonopt.js "me hearties" -x 0.54 yo -y 1.12 ho
(0.54,1.12)
[ 'me hearties', 'yo', 'ho' ]
Yargs even counts your booleans!
----------------------------------------------------------------------
count.js:
````javascript
#!/usr/bin/env node
var argv = require('yargs')
.count('verbose')
.alias('v', 'verbose')
.argv;
VERBOSE_LEVEL = argv.verbose;
function WARN() { VERBOSE_LEVEL >= 0 && console.log.apply(console, arguments); }
function INFO() { VERBOSE_LEVEL >= 1 && console.log.apply(console, arguments); }
function DEBUG() { VERBOSE_LEVEL >= 2 && console.log.apply(console, arguments); }
WARN("Showing only important stuff");
INFO("Showing semi-important stuff too");
DEBUG("Extra chatty mode");
````
***
$ node count.js
Showing only important stuff
$ node count.js -v
Showing only important stuff
Showing semi-important stuff too
$ node count.js -vv
Showing only important stuff
Showing semi-important stuff too
Extra chatty mode
$ node count.js -v --verbose
Showing only important stuff
Showing semi-important stuff too
Extra chatty mode
Tell users how to use yer options and make demands.
-------------------------------------------------
area.js:
````javascript
#!/usr/bin/env node
var argv = require('yargs')
.usage('Usage: $0 -w [num] -h [num]')
.demandOption(['w','h'])
.argv;
console.log("The area is:", argv.w * argv.h);
````
***
$ ./area.js -w 55 -h 11
The area is: 605
$ node ./area.js -w 4.91 -w 2.51
Usage: area.js -w [num] -h [num]
Options:
-w [required]
-h [required]
Missing required arguments: h
After yer demands have been met, demand more! Ask for non-hyphenated arguments!
-----------------------------------------
demand_count.js:
````javascript
#!/usr/bin/env node
var argv = require('yargs')
.demandCommand(2)
.argv;
console.dir(argv);
````
***
$ ./demand_count.js a
Not enough non-option arguments: got 1, need at least 2
$ ./demand_count.js a b
{ _: [ 'a', 'b' ], '$0': 'demand_count.js' }
$ ./demand_count.js a b c
{ _: [ 'a', 'b', 'c' ], '$0': 'demand_count.js' }
EVEN MORE SHIVER ME TIMBERS!
------------------
default_singles.js:
````javascript
#!/usr/bin/env node
var argv = require('yargs')
.default('x', 10)
.default('y', 10)
.argv
;
console.log(argv.x + argv.y);
````
***
$ ./default_singles.js -x 5
15
default_hash.js:
````javascript
#!/usr/bin/env node
var argv = require('yargs')
.default({ x : 10, y : 10 })
.argv
;
console.log(argv.x + argv.y);
````
***
$ ./default_hash.js -y 7
17
And if you really want to get all descriptive about it...
---------------------------------------------------------
boolean_single.js:
````javascript
#!/usr/bin/env node
var argv = require('yargs')
.boolean('v')
.argv
;
console.dir(argv.v);
console.dir(argv._);
````
***
$ ./boolean_single.js -v "me hearties" yo ho
true
[ 'me hearties', 'yo', 'ho' ]
boolean_double.js:
````javascript
#!/usr/bin/env node
var argv = require('yargs')
.boolean(['x','y','z'])
.argv
;
console.dir([ argv.x, argv.y, argv.z ]);
console.dir(argv._);
````
***
$ ./boolean_double.js -x -z one two three
[ true, false, true ]
[ 'one', 'two', 'three' ]
Yargs is here to help you...
---------------------------
Ye can describe parameters fer help messages and set aliases. Yargs figures
out how ter format a handy help string automatically.
line_count.js:
````javascript
#!/usr/bin/env node
var argv = require('yargs')
.usage('Usage: $0 <command> [options]')
.command('count', 'Count the lines in a file')
.example('$0 count -f foo.js', 'count the lines in the given file')
.alias('f', 'file')
.nargs('f', 1)
.describe('f', 'Load a file')
.demandOption(['f'])
.help('h')
.alias('h', 'help')
.epilog('copyright 2015')
.argv;
var fs = require('fs');
var s = fs.createReadStream(argv.file);
var lines = 0;
s.on('data', function (buf) {
lines += buf.toString().match(/\n/g).length;
});
s.on('end', function () {
console.log(lines);
});
````
***
$ node line_count.js count
Usage: line_count.js <command> [options]
Commands:
count Count the lines in a file
Options:
-f, --file Load a file [required]
-h, --help Show help [boolean]
Examples:
line_count.js count -f foo.js count the lines in the given file
copyright 2015
Missing required arguments: f
$ node line_count.js count --file line_count.js
26
$ node line_count.js count -f line_count.js
26
methods
=======
By itself,
````javascript
require('yargs').argv
````
will use the `process.argv` array to construct the `argv` object.
You can pass in the `process.argv` yourself:
````javascript
require('yargs')([ '-x', '1', '-y', '2' ]).argv
````
or use `.parse()` to do the same thing:
````javascript
require('yargs').parse([ '-x', '1', '-y', '2' ])
````
The rest of these methods below come in just before the terminating `.argv`.
<a name="alias"></a>.alias(key, alias)
------------------
Set key names as equivalent such that updates to a key will propagate to aliases
and vice-versa.
Optionally `.alias()` can take an object that maps keys to aliases.
Each key of this object should be the canonical version of the option, and each
value should be a string or an array of strings.
.argv
-----
Get the argum
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于HTML实现的宠物之家静态展示页面项目源码.zip 基于HTML实现的宠物之家静态展示页面项目源码.zip 基于HTML实现的宠物之家静态展示页面项目源码.zip 基于HTML实现的宠物之家静态展示页面项目源码.zip基于HTML实现的宠物之家静态展示页面项目源码.zip 基于HTML实现的宠物之家静态展示页面项目源码.zip 基于HTML实现的宠物之家静态展示页面项目源码.zip 基于HTML实现的宠物之家静态展示页面项目源码.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于HTML实现的宠物之家静态展示页面项目源码.zip (3841个子文件)
gulp.1 3KB
atob 318B
AUTHORS 203B
AUTHORS 152B
bash 734B
range.bnf 619B
CHANGELOG 3KB
CHANGELOG 2KB
CHANGELOG 896B
CHANGES 27KB
CHANGES 2KB
CHANGES 1KB
CHANGES 1KB
CHANGES 901B
CHANGES 486B
gulp.cmd 263B
color-support.cmd 263B
semver.cmd 260B
atob.cmd 259B
json5.cmd 259B
gulp.cmd 259B
which.cmd 258B
cup.coffee 1B
mug.coffee 0B
color-support 326B
login.css 4KB
register.css 4KB
buy.css 3KB
LICENSE.DOCS 19KB
.DS_Store 6KB
.DS_Store 6KB
.editorconfig 605B
.editorconfig 288B
.editorconfig 288B
.editorconfig 288B
.editorconfig 288B
.editorconfig 286B
.editorconfig 286B
.editorconfig 286B
.editorconfig 276B
.editorconfig 276B
.editorconfig 272B
.editorconfig 271B
.editorconfig 264B
.editorconfig 263B
.eslintignore 13B
.eslintignore 10B
.eslintignore 10B
.eslintignore 10B
.eslintignore 10B
.eslintignore 6B
.eslintrc 1KB
.eslintrc 715B
.eslintrc 590B
.eslintrc 426B
.eslintrc 397B
.eslintrc 358B
.eslintrc 247B
.eslintrc 231B
.eslintrc 194B
.eslintrc 180B
.eslintrc 176B
.eslintrc 164B
.eslintrc 81B
.eslintrc 48B
fish 226B
none2.gif 3KB
none1.gif 3KB
.gitattributes 66B
.gitkeep 0B
gulp 326B
gulp 318B
nan.h 86KB
nan_callbacks_12_inl.h 17KB
nan_callbacks_pre_12_inl.h 17KB
nan_weak.h 15KB
nan_implementation_12_inl.h 15KB
nan_maybe_43_inl.h 12KB
nan_new.h 9KB
nan_string_bytes.h 8KB
nan_implementation_pre_12_inl.h 8KB
nan_maybe_pre_43_inl.h 7KB
nan_persistent_pre_12_inl.h 6KB
nan_json.h 6KB
nan_object_wrap.h 4KB
nan_persistent_12_inl.h 4KB
nan_callbacks.h 3KB
nan_typedarray_contents.h 3KB
nan_converters_43_inl.h 3KB
nan_private.h 2KB
nan_converters.h 2KB
nan_converters_pre_43_inl.h 1KB
nan_define_own_property_helper.h 1KB
completion.sh.hbs 751B
petClass.html 36KB
product.html 28KB
ProductText.html 26KB
home.html 22KB
index.html 21KB
petAdoptText.html 12KB
共 3841 条
- 1
- 2
- 3
- 4
- 5
- 6
- 39
资源评论
Make程序设计
- 粉丝: 5741
- 资源: 3570
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功