Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Commander包未正确分析所有选项_Javascript_Node.js_Github Api - Fatal编程技术网

Javascript Commander包未正确分析所有选项

Javascript Commander包未正确分析所有选项,javascript,node.js,github-api,Javascript,Node.js,Github Api,我正在尝试使用NPM package Commander构建一个命令行CLi工具。不幸的是,它没有认可我所有的选择,也没有支持我的论点(它不知何故默认了默认值),我对这个软件包是新手,因此希望能提供一些指导: 我使用Github API获取指定repo的最新版本,该版本被传递到导入到此文件的函数中,然后我尝试获取解析的--form值和解析的--release值。作为参考,我有两个repo:Honeycomb和Vanilla,它们都有完全不同的版本,并且无论我将什么解析为--form,它都会为程序

我正在尝试使用NPM package Commander构建一个命令行CLi工具。不幸的是,它没有认可我所有的选择,也没有支持我的论点(它不知何故默认了默认值),我对这个软件包是新手,因此希望能提供一些指导:

我使用Github API获取指定repo的最新版本,该版本被传递到导入到此文件的函数中,然后我尝试获取解析的
--form
值和解析的
--release
值。作为参考,我有两个repo:Honeycomb和Vanilla,它们都有完全不同的版本,并且无论我将什么解析为
--form
,它都会为
程序返回相同的版本。release

例如:
node scoop.js——form honeycomb
program.release
应该给我提供:honeycomb 1.9.1,它是这样做的

另一方面,
node scoop.js——formvanilla
program.release
应该为我提供vanilla,1.8.2

表单名称是正确的,但它仍然返回
1.9.1
,我不知道为什么

(异步()=>{
//告诉用户如何使用它
程序
.name('node scoop.js')
.用法(“[选项]”)
//默认形式
程序
.option('-f,--form','get the form to deploy','honeycomb')
//获取最新的表单发布
const latestVer=wait repo.latestRelease(`application-${program.form}`)
//指定标签或使用最新版本
程序
.选项('-r,--release',release to deploy',最新版本)
program.parse();
console.log(program.form、program.release)
})()

我没有看到任何对
.parse()
@Pointy的调用,这是因为我为了解释的目的删除了它,因为它变得越来越复杂,我将添加它,但这是除我的观点之外,它不起作用。这里有一个问题:在得到实际的
--form
参数之前,这在调用
.parse之后才会发生()
,您无法从存储库中查找最新版本。我认为您必须更改操作方式,并在解析命令行后获取和(如果必要)设置版本。