2013-04-08 23 views
3

我是optimist的新手,我已經完成了一些Google搜索和嘗試,但仍然無法找到一種優雅的方式來添加--help選項。嘗試使用Optimist API幫助()來打印用法()

我在文檔中看到help()選項。有了這個,我所期望的工作情況如下:

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

所以在外殼上,如果我輸入./myScript --help它會顯示使用。我知道我可以檢查argv-h--help選項,並執行console(argv.usage)來打印使用情況,但我試圖使用API​​而不是黑客使用它。

這是一個有效的問題嗎?謝謝您的幫助。

bitoiu

+0

運行./myScript時會發生什麼--help?你看到生成的使用字符串了嗎?也可以考慮在樂觀主義問題頁面上發佈這個問題。 – Noah 2013-04-09 02:05:36

+0

嗨,諾亞,我沒有嘗試過,沒有生成用戶字符串。我做了 - 幫助,-h,全部。我不妨檢查一下源代碼。無論如何感謝您的答案:) – bitoiu 2013-04-09 09:23:41

回答

10

當你想能夠顯示的使用,要一個指針保持到從需要()返回的對象。這是因爲從.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 

同時注意使用。幫助函數將返回用法作爲字符串,並嘗試使用.argv後,它會使您的argv變量'undefined'。

+1

很好的例子,謝謝! – bitoiu 2013-07-05 10:59:20