我在使用指挥官方面遇到了麻烦: https://github.com/tj/commander.js/
program
.command('school')
.arguments("<year>")
.option("--month <month>", "specify month")
.parse(process.argv)
.action(function (year) {
console.log(`the year is ${year} and the month is ${program.month}`);
});
我不知道为什么,但即使我使用program.month
运行,--month 12
也未定义。
提前致谢。
答案 0 :(得分:1)
尝试使用program.commands[0].month
代替program.month
你应该像这样访问变量,这很奇怪。
也许你可以通过month
参数获得.action
?我自己并不熟悉指挥官。
答案 1 :(得分:1)
示例中的month
选项已添加到school
(子)命令中,而不是添加到程序中。动作处理程序传递了一个额外的参数,使您可以方便地访问其选项(由@GiveMeAllYourCats推测)。
program
.command('school')
.arguments("<year>")
.option("--month <month>", "specify month")
.action(function (year, options) {
console.log(`the year is ${year} and the month is ${options.month}`);
});
program.parse(process.argv);
$ node index.js school --month=3 2020
the year is 2020 and the month is 3