4

我是乐观主义者的新手,我已经做了一些谷歌搜索和尝试,但我仍然找不到添加--help选项的优雅方法。

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

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

所以在 shell 上,如果我输入./myScript --help它会显示用法。我知道我可以检查argva -hor--help选项并console(argv.usage)打印使用情况,但我试图使用 API 而不是破解它。

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

比托尤

4

1 回答 1

12

当您希望能够显示用法时,您希望保留一个指向从 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 变量“未定义”。

于 2013-05-09T17:53:41.030 回答