Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.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 指挥官我可以';我无法从期权中获得价值_Javascript_Node.js_Commanderjs - Fatal编程技术网

Javascript 指挥官我可以';我无法从期权中获得价值

Javascript 指挥官我可以';我无法从期权中获得价值,javascript,node.js,commanderjs,Javascript,Node.js,Commanderjs,我使用commanderjs工具在nodejs中编写了一个cli程序,但当我尝试时,它无法从process.argv中获取值。请帮我解决这个问题 //cli.js const program=需要(“指挥官”); 程序 .版本(“0.0.1”) 选项(“-a,--add”,“add something”) 选项(“-u,--update”,“update something”) 选项(“-r,--remove”,“remove something”) .parse(process.argv);

我使用commanderjs工具在nodejs中编写了一个cli程序,但当我尝试时,它无法从process.argv中获取值。请帮我解决这个问题

//cli.js
const program=需要(“指挥官”);
程序
.版本(“0.0.1”)
选项(“-a,--add”,“add something”)
选项(“-u,--update”,“update something”)
选项(“-r,--remove”,“remove something”)
.parse(process.argv);
log(`version${program.version}您选择:`);
if(program.add){
log(“添加东西”)
}
if(程序更新){
log(“更新某物”)
}
if(program.remove){
log(“删除某物”)

}
您需要使用opts函数来访问解析的参数。版本将以-V标志自动显示

const program = require('commander');

program
     .version("0.0.1")
     .option("-a, --add", "add something")
     .option("-u, --update", "update something")
     .option("-r, --remove", "remove something")
    .parse(process.argv);
let options = program.opts();


if (options.add) {
    console.log("  add something")
}
if (options.update) {
    console.log("  update something")
}
if (options.remove) {
    console.log("  remove something")
}

选项值在Commander v7中的存储方式已更改。您可能遵循了一个较旧的示例@gvmani answer显示访问它们的正确方式。program.version是一个函数,当在命令行上使用-V或--version请求时,它会显示版本。它不是传递给version()函数的字符串。