gpt4 book ai didi

javascript - Vorpal 命令上下文

转载 作者:数据小太阳 更新时间:2023-10-29 04:16:36 25 4
gpt4 key购买 nike

我正在开发基于 Vorpal ( http://vorpal.js.org/ ) 和 NodeJs 的命令行应用程序。

我想知道是否有一种方法可以根据上下文允许(并在帮助中列出)命令。

例如,我可能希望有可能在上下文 1 上执行命令 A 和 B,在上下文 2 上执行命令 C 和 D。然后我会有一个切换上下文的命令,该命令应该始终有效。

最佳答案

你需要结合函数show并为上下文重新定义 exit 函数。简化的实现示例:

var Vorpal = require('vorpal')
var mainDelimiter = 'main'
var main = new Vorpal().delimiter(mainDelimiter + '>')

var contexts = [
{
name: 'context1', help: 'context1 help',
init: function (instance) {
instance
.command('A', 'A help')
.action(function (args, cb) {
this.log('A...')
cb()
})
instance
.command('B', 'B help')
.action(function (args, cb) {
this.log('B...')
cb()
})
}
},
{
name: 'context2', help: 'context2 help',
init: function (instance) {
instance
.command('C', 'C help')
.action(function (args, cb) {
this.log('C...')
cb()
})
instance
.command('D', 'D help')
.action(function (args, cb) {
this.log('D...')
cb()
})
}
}

]

contexts.forEach(function (ctx, i) {
var instance = new Vorpal().delimiter(mainDelimiter + '/' + ctx.name + '>')
ctx.init(instance)

// Override the function "exit" for the context
instance.find('exit').remove()
instance
.command('exit', 'Exit context')
.action(function (args, cb) {
// Switch to the main context
main.show()
cb()
})
main
.command(ctx.name, ctx.help)
.action(function (args, cb) {
// Switch to the selected context
instance.show()
cb()
})
})

main.show()

关于javascript - Vorpal 命令上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49607569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com