国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

nodejs命令行參數處理模塊commander使用實例

2024-05-06 16:08:52
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了nodejs命令行參數處理模塊commander使用實例,commander是一個非常高大上的令行參數處理模塊,需要的朋友可以參考下
 
 

誠然,之前處理都是使用內置的process.agrv ,這個能work,但是不好使,于是tj大神給寫了一個,my god,完全的高大上:

1、安裝

 

復制代碼代碼如下:

npm install commander

 

2、option 解析

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.

 

復制代碼代碼如下:

#!/usr/bin/env node
 
/**
 * Module dependencies.
 */
 
var program = require('commander');
 
program
  .version('0.0.1')
  .option('-p, --peppers', 'Add peppers')
  .option('-P, --pineapple', 'Add pineapple')
  .option('-b, --bbq', 'Add bbq sauce')
  .option('-c, --cheese [type]', 'Add the specified type of cheese [marble]', 'marble')
  .parse(process.argv);
 
console.log('you ordered a pizza with:');
if (program.peppers) console.log('  - peppers');
if (program.pineapple) console.log('  - pineapple');
if (program.bbq) console.log('  - bbq');
console.log('  - %s cheese', program.cheese);

 

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.

3、自動生成help信息

 

復制代碼代碼如下:

$ ./examples/pizza --help
 
  Usage: pizza [options]
 
  Options:
 
    -V, --version        output the version number
    -p, --peppers        Add peppers
    -P, --pineapple      Add pineapple
    -b, --bbq            Add bbq sauce
    -c, --cheese <type>  Add the specified type of cheese [marble]
    -h, --help           output usage information

 

當然你也可以手動生成:

復制代碼代碼如下:

#!/usr/bin/env node
 
/**
 * Module dependencies.
 */
 
var program = require('../');
 
function list(val) {
  return val.split(',').map(Number);
}
 
program
  .version('0.0.1')
  .option('-f, --foo', 'enable some foo')
  .option('-b, --bar', 'enable some bar')
  .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);
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 吉首市| 苗栗市| 金坛市| 仁布县| 陈巴尔虎旗| 杭锦旗| 丹阳市| 敖汉旗| 霸州市| 信宜市| 堆龙德庆县| 乐亭县| 安新县| 峨眉山市| 晋中市| 高淳县| 确山县| 阿巴嘎旗| 红原县| 永清县| 从化市| 侯马市| 廊坊市| 手游| 当阳市| 曲沃县| 英吉沙县| 伊金霍洛旗| 东乡县| 清远市| 绿春县| 吉林省| 乌什县| 海门市| 旺苍县| 称多县| 大名县| 灵璧县| 丰镇市| 库伦旗| 余干县|