commandr.js:通过action()传递命令的isDefault选项

commander.js: passing isDefault option for command with action()

本文关键字:命令 isDefault 选项 js 通过 action commandr      更新时间:2023-09-26

根据command.js自述文件,我可以指定默认命令,因此:

var program = ...;
program
  ...
  .command('list', 'list packages installed', {isDefault: true})
  .parse(process.argv);

在我的应用程序中,我使用的是不带描述参数的.command(),用于使用.action()。我尝试传递第二个参数null和带有isDefault:true的第三个选项。但它似乎不起作用:

program.command('help', null, {isDefault:true})
  .description('display help information.')
  .action(function(){
    program.outputHelp();
  });

如何将isDefault:true传递给具有.action()的命令?

根据文档:

当使用描述参数调用.command()时,不应调用.action(回调)来处理子命令,否则将出现错误。

我相信这意味着您需要找到一个变通方法,例如编写一个单独的子命令。