我有一个看起来像这样的vorpal命令:我正在运行版本1.9.5。
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)发布于 2016-02-22 22:07:33
我承认这看起来很丑陋,他们可能会在未来的版本中修复这个问题,但这看起来是正确的行为。
从.validate返回false或字符串应该抛出一个错误,因为这意味着您不接受参数。如果您返回一个字符串,该字符串将显示给用户(return "I don't want no scrubs.")。
因此,从您发布的代码来看,这是正确的行为。
如果你希望来自.validate的错误信息有所不同,我建议你在vorpal的问题跟踪器上发布一个问题。(尽管我可以看到您已经这样做了)。
https://stackoverflow.com/questions/35550153
复制相似问题