2016-02-22 41 views
1

我有一個看起來像這樣的vorpal命令: 我正在運行版本1.9.5。vorpal .validate拋出錯誤

const vorpal = require('vorpal')() 

vorpal 
    .command('temp [dev]') 
    .validate(function() { 
    return false 
    }) 
    .action(function() { 
    ... 
    }) 

vorpal.parse(process.argv) 

當我在終端上運行pnt temp我得到這個錯誤拋出:

/Users/samm/Sites/pnt/node_modules/vorpal/dist/vorpal.js:169 
      throw new Error(err); 
     ^

Error: null 
    at EventEmitter.<anonymous> (/Users/samm/Sites/pnt/node_modules/vorpal/dist/vorpal.js:169:17) 
    at callback (/Users/samm/Sites/pnt/node_modules/vorpal/dist/vorpal.js:830:22) 
    at /Users/samm/Sites/pnt/node_modules/vorpal/dist/vorpal.js:961:7 
    at EventEmitter._commandSetCallback (/Users/samm/Sites/pnt/node_modules/vorpal/dist/session.js:446:5) 
    at EventEmitter.session.completeCommand (/Users/samm/Sites/pnt/node_modules/vorpal/dist/session.js:526:12) 
    at onCompletion (/Users/samm/Sites/pnt/node_modules/vorpal/dist/session.js:456:10) 
    at EventEmitter.session.execCommandSet (/Users/samm/Sites/p nt/node_modules/vorpal/dist/session.js:471:5) 
    at EventEmitter.vorpal._exec (/Users/samm/Sites/pnt/node_modules/vorpal/dist/vorpal.js:960:18) 
    at EventEmitter.vorpal._execQueueItem (/Users/samm/Sites/pnt/node_modules/vorpal/dist/vorpal.js:751:17) 
    at EventEmitter.vorpal._queueHandler (/Users/samm/Sites/pnt/node_modules/vorpal/dist/vorpal.js:735:10) 
+0

你是如何初始化'vorpal'?請用該代碼更新您的問題。 – bolav

+0

我已經更新了原來的問題 –

回答

0

我承認這是面色難看,他們可能會解決此問題在將來的版本,但是這看起來像正確的行爲。

返回false.validate的字符串應拋出錯誤,因爲這意味着您不接受參數。如果返回一個字符串,該字符串將顯示給用戶(return "I don't want no scrubs.")。

因此,您發佈的代碼是正確的行爲。

如果您喜歡.validate的錯誤消息有所不同,我建議您在vorpal的問題跟蹤器上發佈問題。 (即使我可以看到你已經做到了)。

+0

如果我用字符串來代替只是返回false我得到的文本記錄然後再次出現相同的錯誤,這似乎不像標準的行爲 –

+0

你沒有在你的問題中指定你的行爲希望當你不允許參數。無論如何,這是框架的功能,它看起來像是預期和想要的行爲。 – bolav

+0

我只是認爲這是一個錯誤,因爲我可以在早期版本宣誓如果驗證沒有通過它會退出命令與任何字符串,你放回去 –