javascript - 尝试使用 Optimist API help() 打印 usage()

标签 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 而不是破解它。

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

比图尤

最佳答案

当您希望能够显示用法时,您希望保留一个指向从 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/

相关文章:

javascript - 我需要使用 JavaScript 可视化动态集合,可以使用响应式扩展来实现吗?

javascript - Jquery .hover 添加一个类 - 或者 Child :hover to affect parent?

javascript - node.js:程序意外退出或挂起

javascript - 如何编写自定义断言以使用磁带测试 Node 或 javascript,或检查子字符串而不是 t.deepEquals()?

javascript - 如何使用 sequelize-hierarchy 在 Node.js 中对同一级别的项目进行排序?

javascript - REST API 与直接访问代码

javascript - 密码在保存到数据库之前不会进行哈希处理

java - Gson解析没有键值对的字符串

android - 如何在android中使用Jsoup解析HTML标签

解析维基百科国家、地区、城市