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

2020-06-17 06:21:14易采站长站整理

  .option(‘-B, –baz’, ‘enable some baz’);
 
// must be before .parse() since
// node’s emit() is immediate
 
program.on(‘–help’, function(){
  console.log(‘  Examples:’);
  console.log(”);
  console.log(‘    $ custom-help –help’);
  console.log(‘    $ custom-help -h’);
  console.log(”);
});
 
program.parse(process.argv);
 
console.log(‘stuff’);

4、举个完整的例子


function range(val) {
  return val.split(‘..’).map(Number);
}
 
function list(val) {
  return val.split(‘,’);
}
 
function collect(val, memo) {
  memo.push(val);
  return memo;
}
 
function increaseVerbosity(v, total) {
  return total + 1;
}
 
program
  .version(‘0.0.1’)
  .usage(‘[options] <file …>’)
  .option(‘-i, –integer <n>’, ‘An integer argument’, parseInt)
  .option(‘-f, –float <n>’, ‘A float argument’, parseFloat)
  .option(‘-r, –range <a>..<b>’, ‘A range’, range)
  .option(‘-l, –list <items>’, ‘A list’, list)
  .option(‘-o, –optional [value]’, ‘An optional value’)
  .option(‘-c, –collect [value]’, ‘A repeatable value’, collect, [])
  .option(‘-v, –verbose’, ‘A value that can be increased’, increaseVerbosity, 0)
  .parse(process.argv);
 
console.log(‘ int: %j’, program.integer);
console.log(‘ float: %j’, program.float);
console.log(‘ optional: %j’, program.optional);
program.range = program.range || [];
console.log(‘ range: %j..%j’, program.range[0], program.range[1]);
console.log(‘ list: %j’, program.list);
console.log(‘ collect: %j’, program.collect);
console.log(‘ verbosity: %j’, program.verbose);
console.log(‘ args: %j’, program.args);