1

我在使用指挥官时遇到问题: 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.

提前致谢。

4

2 回答 2

2

尝试使用program.commands[0].month而不是program.month 奇怪的是,您应该像这样访问变量。

也许你可以month通过.action参数得到?我自己对指挥官不是很熟悉。

于 2016-05-03T14:23:20.277 回答
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
于 2020-03-13T22:11:40.093 回答