我是 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 而不是破解它。
这是一个有效的问题吗?感谢您的帮助。
比图尤
最佳答案
当您希望能够显示用法时,您希望保留一个指向从 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 变量“未定义”。
关于javascript - 尝试使用 Optimist API help() 打印 usage(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15889826/