yargs 模塊還允許通過 command 方法,設(shè)置 Git 風(fēng)格的子命令。
#!/usr/bin/env node
var argv = require('yargs')
.command("morning", "good morning", function (yargs) {
console.log("Good Morning");
})
.command("evening", "good evening", function (yargs) {
console.log("Good Evening");
})
.argv;
console.log('hello ', argv.n);
用法如下。
$ hello morning -n tom
Good Morning
hello tom
可以將這個功能與 shellojs 模塊結(jié)合起來。
#!/usr/bin/env node
require('shelljs/global');
var argv = require('yargs')
.command("morning", "good morning", function (yargs) {
echo("Good Morning");
})
.command("evening", "good evening", function (yargs) {
echo("Good Evening");
})
.argv;
console.log('hello ', argv.n);
每個子命令往往有自己的參數(shù),這時就需要在回調(diào)函數(shù)中單獨指定?;卣{(diào)函數(shù)中,要先用 reset 方法重置 yargs 對象。
#!/usr/bin/env node
require('shelljs/global');
var argv = require('yargs')
.command("morning", "good morning", function (yargs) {
echo("Good Morning");
var argv = yargs.reset()
.option("m", {
alias: "message",
description: "provide any sentence"
})
.help("h")
.alias("h", "help")
.argv;
echo(argv.m);
})
.argv;
用法如下。
$ hello morning -m "Are you hungry?"
Good Morning
Are you hungry?
更多建議: