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