html5中文学习网

您的位置: 首页 > 网站及特效实例 > javascript特效 » 正文

nodejs命令行参数处理模块commander使用实例_node.js_

[ ] 已经帮助:人解决问题

诚然,之前处理都是使用内置的process.agrv ,这个能work,但是不好使,于是tj大神给写了一个,my god,完全的高大上:mUtHTML5中文学习网 - HTML5先行者学习网

1、安装mUtHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
mUtHTML5中文学习网 - HTML5先行者学习网
npm install commandermUtHTML5中文学习网 - HTML5先行者学习网
mUtHTML5中文学习网 - HTML5先行者学习网

2、option 解析mUtHTML5中文学习网 - HTML5先行者学习网

Options with commander are defined with the .option() method, also serving as documentation for the options. The example below parses args and options from process.argv, leaving remaining args as the program.args array which were not consumed by options.mUtHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
mUtHTML5中文学习网 - HTML5先行者学习网
#!/usr/bin/env nodemUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
/**mUtHTML5中文学习网 - HTML5先行者学习网
 * Module dependencies.mUtHTML5中文学习网 - HTML5先行者学习网
 */mUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
var program = require('commander');mUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
programmUtHTML5中文学习网 - HTML5先行者学习网
  .version('0.0.1')mUtHTML5中文学习网 - HTML5先行者学习网
  .option('-p, --peppers', 'Add peppers')mUtHTML5中文学习网 - HTML5先行者学习网
  .option('-P, --pineapple', 'Add pineapple')mUtHTML5中文学习网 - HTML5先行者学习网
  .option('-b, --bbq', 'Add bbq sauce')mUtHTML5中文学习网 - HTML5先行者学习网
  .option('-c, --cheese [type]', 'Add the specified type of cheese [marble]', 'marble')mUtHTML5中文学习网 - HTML5先行者学习网
  .parse(process.argv);mUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
console.log('you ordered a pizza with:');mUtHTML5中文学习网 - HTML5先行者学习网
if (program.peppers) console.log('  - peppers');mUtHTML5中文学习网 - HTML5先行者学习网
if (program.pineapple) console.log('  - pineapple');mUtHTML5中文学习网 - HTML5先行者学习网
if (program.bbq) console.log('  - bbq');mUtHTML5中文学习网 - HTML5先行者学习网
console.log('  - %s cheese', program.cheese);mUtHTML5中文学习网 - HTML5先行者学习网
mUtHTML5中文学习网 - HTML5先行者学习网

Short flags may be passed as a single arg, for example -abc is equivalent to -a -b -c. Multi-word options such as “template-engine” are camel-cased, becoming program.templateEngine etc.mUtHTML5中文学习网 - HTML5先行者学习网

3、自动生成help信息mUtHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
mUtHTML5中文学习网 - HTML5先行者学习网
$ ./examples/pizza --helpmUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
  Usage: pizza [options]mUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
  Options:mUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
    -V, --version        output the version numbermUtHTML5中文学习网 - HTML5先行者学习网
    -p, --peppers        Add peppersmUtHTML5中文学习网 - HTML5先行者学习网
    -P, --pineapple      Add pineapplemUtHTML5中文学习网 - HTML5先行者学习网
    -b, --bbq            Add bbq saucemUtHTML5中文学习网 - HTML5先行者学习网
    -c, --cheese <type>  Add the specified type of cheese [marble]mUtHTML5中文学习网 - HTML5先行者学习网
    -h, --help           output usage informationmUtHTML5中文学习网 - HTML5先行者学习网
mUtHTML5中文学习网 - HTML5先行者学习网

当然你也可以手动生成:mUtHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
mUtHTML5中文学习网 - HTML5先行者学习网
#!/usr/bin/env nodemUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
/**mUtHTML5中文学习网 - HTML5先行者学习网
 * Module dependencies.mUtHTML5中文学习网 - HTML5先行者学习网
 */mUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
var program = require('../');mUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
function list(val) {mUtHTML5中文学习网 - HTML5先行者学习网
  return val.split(',').map(Number);mUtHTML5中文学习网 - HTML5先行者学习网
}mUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
programmUtHTML5中文学习网 - HTML5先行者学习网
  .version('0.0.1')mUtHTML5中文学习网 - HTML5先行者学习网
  .option('-f, --foo', 'enable some foo')mUtHTML5中文学习网 - HTML5先行者学习网
  .option('-b, --bar', 'enable some bar')mUtHTML5中文学习网 - HTML5先行者学习网
  .option('-B, --baz', 'enable some baz');mUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
// must be before .parse() sincemUtHTML5中文学习网 - HTML5先行者学习网
// node's emit() is immediatemUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
program.on('--help', function(){mUtHTML5中文学习网 - HTML5先行者学习网
  console.log('  Examples:');mUtHTML5中文学习网 - HTML5先行者学习网
  console.log('');mUtHTML5中文学习网 - HTML5先行者学习网
  console.log('    $ custom-help --help');mUtHTML5中文学习网 - HTML5先行者学习网
  console.log('    $ custom-help -h');mUtHTML5中文学习网 - HTML5先行者学习网
  console.log('');mUtHTML5中文学习网 - HTML5先行者学习网
});mUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
program.parse(process.argv);mUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
console.log('stuff');mUtHTML5中文学习网 - HTML5先行者学习网
mUtHTML5中文学习网 - HTML5先行者学习网

4、举个完整的例子mUtHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
mUtHTML5中文学习网 - HTML5先行者学习网
function range(val) {mUtHTML5中文学习网 - HTML5先行者学习网
  return val.split('..').map(Number);mUtHTML5中文学习网 - HTML5先行者学习网
}mUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
function list(val) {mUtHTML5中文学习网 - HTML5先行者学习网
  return val.split(',');mUtHTML5中文学习网 - HTML5先行者学习网
}mUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
function collect(val, memo) {mUtHTML5中文学习网 - HTML5先行者学习网
  memo.push(val);mUtHTML5中文学习网 - HTML5先行者学习网
  return memo;mUtHTML5中文学习网 - HTML5先行者学习网
}mUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
function increaseVerbosity(v, total) {mUtHTML5中文学习网 - HTML5先行者学习网
  return total + 1;mUtHTML5中文学习网 - HTML5先行者学习网
}mUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
programmUtHTML5中文学习网 - HTML5先行者学习网
  .version('0.0.1')mUtHTML5中文学习网 - HTML5先行者学习网
  .usage('[options] <file ...>')mUtHTML5中文学习网 - HTML5先行者学习网
  .option('-i, --integer <n>', 'An integer argument', parseInt)mUtHTML5中文学习网 - HTML5先行者学习网
  .option('-f, --float <n>', 'A float argument', parseFloat)mUtHTML5中文学习网 - HTML5先行者学习网
  .option('-r, --range <a>..<b>', 'A range', range)mUtHTML5中文学习网 - HTML5先行者学习网
  .option('-l, --list <items>', 'A list', list)mUtHTML5中文学习网 - HTML5先行者学习网
  .option('-o, --optional [value]', 'An optional value')mUtHTML5中文学习网 - HTML5先行者学习网
  .option('-c, --collect [value]', 'A repeatable value', collect, [])mUtHTML5中文学习网 - HTML5先行者学习网
  .option('-v, --verbose', 'A value that can be increased', increaseVerbosity, 0)mUtHTML5中文学习网 - HTML5先行者学习网
  .parse(process.argv);mUtHTML5中文学习网 - HTML5先行者学习网
 mUtHTML5中文学习网 - HTML5先行者学习网
console.log(' int: %j', program.integer);mUtHTML5中文学习网 - HTML5先行者学习网
console.log(' float: %j', program.float);mUtHTML5中文学习网 - HTML5先行者学习网
console.log(' optional: %j', program.optional);mUtHTML5中文学习网 - HTML5先行者学习网
program.range = program.range || [];mUtHTML5中文学习网 - HTML5先行者学习网
console.log(' range: %j..%j', program.range[0], program.range[1]);mUtHTML5中文学习网 - HTML5先行者学习网
console.log(' list: %j', program.list);mUtHTML5中文学习网 - HTML5先行者学习网
console.log(' collect: %j', program.collect);mUtHTML5中文学习网 - HTML5先行者学习网
console.log(' verbosity: %j', program.verbose);mUtHTML5中文学习网 - HTML5先行者学习网
console.log(' args: %j', program.args);mUtHTML5中文学习网 - HTML5先行者学习网
mUtHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助