Javascript Commander包未正确分析所有选项
我正在尝试使用NPM package Commander构建一个命令行CLi工具。不幸的是,它没有认可我所有的选择,也没有支持我的论点(它不知何故默认了默认值),我对这个软件包是新手,因此希望能提供一些指导: 我使用Github API获取指定repo的最新版本,该版本被传递到导入到此文件的函数中,然后我尝试获取解析的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,它都会为程序
--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之后才会发生()
,您无法从存储库中查找最新版本。我认为您必须更改操作方式,并在解析命令行后获取和(如果必要)设置版本。