如何在 yargs 中指定默认子命令
How do I specify a default subcommand in yargs?
我正在使用yargs
创建一个构建工具,其中包含"构建","链接","清理"等子命令。
我希望能够在没有参数的情况下键入./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()
的文件可以更清楚。
正如@sthzg所评论的那样,您现在可以拥有默认命令:
const argv = require('yargs')
.command('$0', 'the default command', () => {}, (argv) => {
console.log('this command will be run by default')
})
Yargs 本身似乎不提供此功能。NPM 上有一个第三方软件包,可以增强 yargs 做你想做的事。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;
相关文章:
- 用嵌套函数和默认函数定义函数
- 如何使用铁流星与流星的默认路线
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 当我点击jsf中的primefaces命令按钮时,如何获得点击事件
- 如何使用Socket.io将命令从客户端发送到服务器
- CKeditor:更改对话框中的默认选择选项
- 在不阻止默认行为的情况下检测IE10中的缩放
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 如何从外部页面激活非默认引导选项卡
- 防止默认锚点行为AngularJS
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- jpm的默认Firefox路径没有'不起作用
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- 如果值为空,如何设置输入的默认值?jQuery
- 骨干模型默认值-todos.js示例中不必要的代码
- 在剑道UI中执行默认命令's网格触发事件
- 如何防止浏览器默认行为在按 Cntl(命令)+侧箭头在火狐中
- Ace Editor Javascript:如何禁用textarea中不默认的所有额外命令
- Chrome中的快捷键命令不阻止默认操作
- 如何在 yargs 中指定默认子命令