如何在yargs中指定默认的子命令?

我正在使用yargs创build一个构build工具,其中包含“build”,“link”,“clean”等子命令。

我希望能够input./build.js带参数的./build.js ,并且默认调用“build”子命令处理程序。

我能够这样做:

 var argv = yargs .usage("I am usage.") .command('bundle', 'Create JS bundles', bundle) .command('link', 'Symlink JS files that do not need bundling', link) .command('clean', 'Remove build artifacts', clean) .command('build', 'Perform entire build process.', build) .help('help') .argv; if (argv._.length === 0) { build(); } 

但是对我来说似乎有些不好意思,如果我想要为“build”子命令添加任何额外的位置参数,可能会导致问题。

在yargs的语义中有没有办法做到这一点? .command()的文档可能会更清晰。

Yargs似乎并没有提供这个function。 NPM上有一个第三方软件包,可以增加纱线的function。 https://www.npmjs.com/package/yargs-default-command

 var yargs = require('yargs'); var args = require('yargs-default-command')(yargs); args .command('*', 'default command', build) .command('build', 'build command', build) .args;