我正在开发一个 CLI 项目,用户必须先登录才能使用任何其他命令。 以下是用户将与之交互的命令。
当我尝试查看 oms login 的帮助时,它显示 oms get 命令的帮助。
const argv = require('yargs/yargs')(process.argv.slice(2))
.usage('Usage: $0 <command> [options]')
.command({
command: "oms login",
desc: "Login the User to OMS",
builder: {
username: {
alias: 'u',
demandOption: true
},
password: {
alias: 'p',
demandOption: true
},
auth_url: {
alias: 'a',
demandOption: true
}
},
handler: (argv) => console.log(argv),
})
.command({
command: "oms get",
desc: "Get the Status",
builder: {
url: {
alias: 'u',
demandOption: true
}
},
handler: (argv) => console.log(argv),
})
.help('h')
.alias('h', 'help')
.wrap(null)
.argv;
来自 oms 登录的帮助
PS F:\node\REST-CLI\cli> node .\index.js oms login --help
index.js oms get
Get the Status
Options:
--version Show version number [boolean]
-h, --help Show help [boolean]
-u, --url [required]
来自 oms get
的帮助PS F:\node\REST-CLI\cli> node .\index.js oms get --help
index.js oms get
Get the Status
Options:
--version Show version number [boolean]
-h, --help Show help [boolean]
-u, --url [required]
我正在使用上面的代码,请让我知道我在哪里犯了错误。 谢谢
我猜
index.js
将是你的可执行文件,你可以将其放入package.json
中作为
"bin": {
"oms": "./index.js"
},
然后将子命令定义为:
.command({
command: "login",
//
})
.command({
command: "get",
// rest ommited
})