bit*_*oiu 4 javascript parsing node.js
我是乐观的新人,我已经做了一些谷歌搜索和尝试,但我仍然找不到一个优雅的方式来添加一个--help选项.
我在文档上看到了一个help()选项.有了这个,我希望以下工作:
var argv = require('optimist')
.usage('Some usage')
.alias('l', 'local')
.describe('l', 'uses local repo')
.help()
.argv
Run Code Online (Sandbox Code Playgroud)
所以在shell上,如果我输入./myScript --help它会显示用法.我知道我可以检查argvfor -h或--helpoption并console(argv.usage)打印用法,但我试图使用API而不是黑客攻击它.
这是一个有效的问题吗?谢谢您的帮助.
bitoiu
doh*_*z42 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!');
}
Run Code Online (Sandbox Code Playgroud)
然后,当您运行代码并传入-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
Run Code Online (Sandbox Code Playgroud)
另请注意,使用.help函数会将用法作为字符串返回,并尝试使用.argv后会使您的argv变量"未定义".