如何解决使用带有nodejs的commander.js的默认值问题
我正在使用commander.js
创建CLI:
myScript.js
program
.command('delete [listID] [file]')
.description("delete duplicate emails")
.option('-l,--listID',"Enter the list ID","myListID")
.option('-f,--file',"Enter the CSV file",process.cwd() + "/myCSVfile.csv")
.action(function(listID,file){
deleteMembersOfCSV(listID,file);
})
当我使用类似的命令时,它可以正常工作:
$ node myScript.js delete -l <myListID> -f <myCSVfile.csv>
但是当我像这样使用它时:
$ node myScript.js delete
它不使用我在.option()
为什么?我该如何纠正?
这里是错误,它使我退回:
(node:9153) UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be one of type string,Buffer,or URL. Received type undefined
我认为问题出在process.cwd()
,但我不确定。它说类型是undefined
,但实际上不是。我尝试仅输入CSV的名称(与程序位于同一文件夹中),但是它向我发送了相同的错误。在我使用几乎没有.command
行的相同代码之前,它工作得很好。是否可以在另一个文件中创建函数并在Commander的.otpion
内部调用它?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。