gpt4 book ai didi

javascript - 如何使用 Yargs 实现多个子命令?

转载 作者:行者123 更新时间:2023-12-05 00:37:34 25 4
gpt4 key购买 nike

我一直在尝试,但就是无法消化 Yargs 的 docs .

我需要创建一组命令/子命令:

~$framework generate routed-module ModuleOne ModuleTwo ModuleThree --animation-style=bounce-up

//would call a handler with:
{ modules: string[], options: {animationStyle?: AnimationStyle}}
type AnimationStyle = 'bounce-up' | 'slide-left'


或者
~$framework generate stateful-ui ModuleOne ModuleTwo ModuleThree
//would call a handler with:
{ modules: string[]}


或者
~$framework init
//would just call a handler

我想要别名: g对于 generate , r对于 routed-module , s对于 stateful-ui .

自动完成会很好。

这是我尝试过的,不知道从哪里开始:
  yargs
.scriptName('elm-framework')
.command({
command: 'generate [moduleType] [moduleNames]',
aliases: ['g'],
describe: 'Generates a resource',
handler: config.handleModuleGeneration,
builder: {
moduleType: {
demand: true,
choices: ['routed', 'stateful'] as const,
default: 'routed',
},
moduleNames: {
demand: true,
array: true,
},
},
})

谢谢!

(没有必要用 typescript 做这个。我主要想了解如何使用库的api。)

最佳答案

使用 this crucial piece of documentation 计算出来:

  yargs
.scriptName('framework')
.command({
command: 'generate [moduleType] [moduleNames...]',
aliases: ['g'],
describe: 'Generates a resource',
handler: parsed => console.log('your handler goes here', parsed),
builder: {
moduleType: {
demand: true,
choices: ['routed', 'stateful'] as const,
default: 'routed',
},
moduleNames: {
demand: true,
array: true,
},
},
}).parse(process.argv.slice(2))

关于javascript - 如何使用 Yargs 实现多个子命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59894389/

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