我正在将节点js yargs
模块用于传递给终端的选项。
我的脚本有多个命令,每个命令对其他命令的输入都不同。
当我运行命令myscriptname cp -i 12345
时,它将在终端上显示以下消息
Not enough non-option arguments: got 0, need at least 2
这是我的yargs
代码,用于处理命令中的终端选项
const yargs = require('yargs');
let argv = yargs
.usage('$0 <command> [option]')
.command(
'cd , compare_dollar',
'compare exchange rate of dollar',
(yargs) => {
return yargs
.usage('$0 compare_dollar -file <fileName> -stage [options] -country [option]')
.example('$0 compare_dollar -file fpp.xls -stage dev', 'calculate the exchange')
.example('$0 cd -f fpp.xls -s dev', 'calculate the exchange')
.alias('f', 'file')
.nargs('f', 1)
.describe('f', 'file path')
.default('f', './foo.xls')
.alias('s', 'stage')
.describe('s', 'stage i.e [dev|qa|uat|prod]')
.default('s', 'dev')
.alias('c', 'country')
.describe('c', '[IN|BA]')
.default('c', 'IN')
.help('h')
.alias('h', 'help')
.wrap(null);
}
)
.command(
'cp , compare_price',
'compare price for an item on various sites',
function (yargs) {
return yargs
.usage('$0 cp -i <item_id> -s [option] -c [option]')
.example('$0 cp -item_id <item_id> -s dev -c US', 'foooo')
.example('$0 cp -i <item_id>', 'foooo')
.alias('i', 'item_id')
.demand(1)
.alias('s', 'stage')
.describe('s', 'stage i.e [dev|qa|uat|prod]')
.default('s', 'dev')
.alias('c', 'country')
.describe('c', '[IN|BA]')
.default('c', 'IN')
.help('h')
.alias('h', 'help');
}
)
.help('h')
.alias('h', 'help')
.demand(1)
.wrap(null)
.argv;