尝试使用Optimist API help()打印用法()

时间:2013-04-08 22:02:09

标签: javascript node.js parsing

我是optimist的新手,我已经做了一些谷歌搜索和尝试,但我仍然找不到一种优雅的方式来添加--help选项。

我在文档中看到help()选项。有了这个,我希望以下工作:

var argv = require('optimist')
  .usage('Some usage')
  .alias('l', 'local')
  .describe('l', 'uses local repo')
  .help()
  .argv

所以在shell上,如果我输入./myScript --help,它会显示用法。我知道我可以检查argv -h--help选项并执行console(argv.usage)打印用法,但我尝试使用API​​而不是黑客攻击

这是一个有效的问题吗?谢谢你的帮助。

bitoiu

1 个答案:

答案 0 :(得分:11)

如果希望能够显示用法,则需要保留指向require()返回的对象的指针。这是因为从.argv返回的对象只是一个普通对象,因此无法访问help()或showHelp()函数。下面是一个人为的例子,我认为这将为您指明正在做的事情。

var optimist = require('optimist')
    .usage('$0: This is an example on how to use optimist')
    .describe('h', 'Display the usage')
    .describe('l', 'uses local repo')
    .alias('h', 'help')
    .alias('l', 'local');

var argv = optimist.argv;

if (argv.help) {
    optimist.showHelp();
    process.exit(0);
}

if (argv.local) {
    // Do stuff based on local repo
    console.info('Got the -l/--local flag!');
}

然后当你运行代码并传入-h或--help时,你会得到以下输出:

node ./ex-optimist.js: This is an example on how to use optimist

Options:
  -h, --help   Display the usage
  -l, --local  uses local repo

另请注意,使用.help函数会将用法作为字符串返回,并尝试使用.argv后会使您的argv变量“未定义”。