首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

在yargs中指定默认子命令可以通过设置default属性来实现。default属性可以接受一个对象,对象的键是子命令的名称,值是一个布尔值,表示该子命令是否为默认子命令。

以下是一个示例代码:

代码语言:javascript
复制
const yargs = require('yargs');

yargs.command('start', 'Start the application', () => {
  console.log('Starting the application...');
});

yargs.command('stop', 'Stop the application', () => {
  console.log('Stopping the application...');
});

yargs.default('command', 'start'); // 设置默认子命令为 'start'

yargs.parse();

在上面的示例中,我们定义了两个子命令:startstop。通过调用default方法,将默认子命令设置为start。这意味着如果用户没有提供任何子命令,那么默认会执行start子命令。

运行上述代码,如果用户不提供任何子命令,将会输出:

代码语言:txt
复制
Starting the application...

如果用户提供了子命令,例如node app.js stop,则会执行相应的子命令。

需要注意的是,default方法需要在调用parse方法之前使用,以确保默认子命令的正确设置。

关于yargs的更多详细信息和用法,请参考腾讯云的相关文档:yargs - 腾讯云

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

yargs 简易指南:撸一个CLI

,刚好这次可以用上,就是yargs; 前置知识储备 知道linux风格的命令行规范,比如可选参数,命令等 node解析参数的原理 process.argv采用的解析库 yargs : API风格是链式调用...,具备完善的command和复杂参数的组合,以及对应的hanlder【钩子响应】, 有完整的typescript提示,在写的过程,直接跳转看类型定义可以减少看文档的次数。...', // 命令全称 aliases: ['m'], // 命令别名 desc: '测量文件', // 命令描述 builder: function (yargs) {...: { alias: 'path', // 命令参数别名 describe: '测量路径', // 命令参数描述 string...(1); }) .showHelpOnFail(false, '命令指定 --help 查看有效的选项') // 当命令执行错误的时候,自动调用一下帮助命令并输出到终端 .version(false

1.1K10
  • 2024年Node.js精选:50款工具库集锦,项目开发轻松上手(二)

    https://www.npmjs.com/package/glob 15、yargs:构建友好CLI工具的终极解决方案 在Node.js开发,构建命令行界面(CLI)工具是一项常见的任务。...yargs库以其能够将复杂的命令行参数转换为结构化数据的能力,让开发者轻松构建用户友好的CLI工具和脚本。通过解析参数、生成帮助信息以及轻松处理错误,yargs极大地简化了CLI工具的开发。...`); } }); 命令组和命令yargs .command('user', '管理用户账户', { create: { command: 'add' }, update...https://www.npmjs.com/package/yargs 16、colors:为CLI输出增添色彩的魔法 在命令行界面(CLI)开发,输出的可读性和吸引力至关重要。...可自定义的选项:定义别名、默认值和验证规则。 错误处理:提供优雅的错误处理和反馈机制。

    44110

    【架构师(第四篇)】脚手架开发之Lerna源码分析

    (arg) .wrap(100) .argv 可以看到 cli 在命令的宽度发生了变化 yargs.terminalWidth() 这个方法会返回命令行界面的宽度,这样cli就会全屏展示了...describe: "define global registry", alias: "r", // hidden:true }) group 给 option 分组, options 是默认的组...fail 当 command 不存在时的错误处理 当一个 command 不存在时,默认会输出 --help 的内容 ,如果我们不想看到,那么就可以在 fail 这个方法里进行定制 cli .fail....command(versionCmd) // 添加命令 .parse(argv, context);// 合并参数 , 将 argv 和自定义的 context 的属性合并到 argv ...exports.builder = (yargs) => { // 配置命令在执行之前做的事情 listable.options(yargs); return filterOptions(

    97420

    webpack-cli和它的自定义命令

    今天我要给大家带来webpack-cli的原理浅析和它的自定义命令行工具 事情是这样的,最近在看webpack相关教程,然后发现教程中讲webpack-cli中使用yargs模块解析命令出于好奇,我就当场拉了...webpack-cli的代码,发现使用命令解析的并不是yargs而是commander啊!...在webpack-cli 3 ,在bin/cli.js文件解析cli参数,通过bin/utils/convert-argv.js文件,将得到的命令行参数转换为webpack 配置选项对象。...将命令行参数转换为webpack配置选对象: webpack-cli内部存在参数默认值,会去判断命令行是否指定具体路径的配置文件,如果指定配置文件就会去执行配置文件,否则就会根据默认参数和cli参数整合到一起...注意: 既然使用dy自定义命令,就需要知道,dy已经被注册到本地模块。dy默认就是执行当前目录下的dy.js文件。想要跟换执行文件,只在package.json更改dy对应文件路径是行不通的。

    94820

    Week2-脚手架架构设计和框架搭建

    /usr/bin/env node 配置package.json文件,添加bin属性(指定脚手架命令与地址) 编写脚手架代码 将脚手架发布到npm 使用流程: 安装脚手架: npm install.../core (在指定包core添加依赖) lerna clean (清除packages目录下的依赖) lerna bootstrap (将刚清除的所有依赖,重新安装) lerna...第三个参数为builder函数:在执行此command具体命令之前做的动作,比如上文为serve这个命令定义了一个参数 port,且给定port的默认值为5000 第四个参数我们叫做handler:是用来具体执行...yargs.parse(argv,options)的方法 第四步:当脚手架的参数解析完成之后,我们要进行命令注册 命令注册我们使用的是yargs.command()方法。...实现原理: 首先就是通过 import-local这个库优先调用lerna的本地命令, 然后通过yargs生成一个脚手架、生成脚手架后生成一些全局参数、然后注册命令,通过yargs.parse方法进行参数解析

    1.2K30

    「前端工程化」从0-1搭建react,ts脚手架(自动化收集,进程通信,深拷贝文件等全流程)

    ①node实现终端命令行 ②终端命令行交互 ③深copy整个文件夹 ④nodejs执行终端命令 npm install ⑤建立进程通信 ⑥webpack底层操作,启动webpack,合并配置项 ⑦...实际上流程大致是这样的通过mycli可以指向性执行指定的node文件。接下来我们一起分析一下具体步骤。 执行终端命令号,期望结果是执行当前的node文件。 建立工程 ?...在PATH环境变量查找指定可执行文件的第一个实例。不缓存结果,因此hash -rPATH更改时不需要。也就是说我们可以找到npm实例,通过代码层面控制npm做某些事。 例子???...参数说明:(重复的参数说明就不在这里列举) execPath:用来创建进程的可执行文件,默认是/usr/local/bin/node。...默认是 process.execArgv,跟父进程保持一致。 silent: 默认是false,即进程的stdio从父进程继承。

    1.8K50

    10分钟开发一个npm全局依赖包(下)

    在上一篇我们用了10分钟实现了一个完整的古诗词命令行工具,本章我们主要简绍2个命令行工具开发中常用的库,整个代码大概用时20分钟。...,yargs就是处理这种情况的一个优质的库。...代码还是在可以控制的行数范围内,上述代码4~34行,是yargs的处理,也是通用的一种写法,这里面有2个属性比较特殊一个是help另一个是version,从下面的结果我们可以看到,当输入这两个的时候都会阻止代码的执行...就这样我们把一个功能完善的古诗词命令行工具做完了,需要注意一点再次提交的时候,也就是运行npm publish前,需要修改一下package.json的version字段,而且必须大于当前的版本号,建议使用...npm version 1.0.1这样的命令去修改,因为该命令会顺带把package-lock.json文件的版本号也改了。

    70231

    gulp+webpack工作流探索

    |- 业务css |- stylesheets //编译后的css 开发时引入 compass编译 |- images 原图片 修改依赖包内容 因为rev默认生成的版本号是加在静态文件文件名上的...,main-d3id7340.js这样会造成服务器上有n多的js,所以我们希望生成main.js?...v=233333这样的版本号,在配合ssi就能很好的维护,以后如果只涉及修改静态文件的时候,就只用重新上传静态文件和ssi页面片就可以了,不需要再去改php的引用,所以在网上找到了一个方法。...path.join(__dirname, "dist/js"), //文件输出目录 // publicPath: path.join("dist/js/"), //用于配置文件发布路径,CDN...总结 在思考工作流的时候,思考最多的就是如何在php直出并且由后端同事写模版文件的情况下做好交付html和后期脱离后端同事进行静态文件维护,好像除了用nginx ssi没什么其他好办法再不改模版文件的情况下更换静态文件

    1.4K20

    前端工程化(一)NPM如何管理依赖包版本?

    如果操作失误,很容易造成版本号混乱,我们可以借助符合 Semver 规范的命令来完成这一操作: npm version patch : 升级修订版本号 npm version minor : 升级次版本号...在 package.json 文件中最常见的应该是 "yargs": "^14.0.0" 这种格式的 依赖, 因为我们在使用 npm install package 安装包时,npm 默认安装当前最新版本...使用 npm outdated 可以帮助我们列出有哪些还没有升级到最新版本的依赖: 黄色表示不符合我们指定的语意化版本范围 - 不需要升级 红色表示符合指定的语意化版本范围 - 需要升级 执行 npm...主工程跑在docker线上,本地还在进行依赖开发和升级,在docker版本发布前要锁定所有依赖版本,确保本地依赖发布后线上不会出问题。...保持依赖一致 确保npm的版本在5.6以上,确保默认开启 package-lock.json 文件。

    3.8K31

    Week3-脚手架核心流程开发

    本节代码开发过程命令行用到的命令: utils下新建log包: lerna create @cloudscope-cli/log utils log下安装npmlog包: lerna add npmjs...4-6 入参检查和debug模式开发 这里就进行参检查,是要判断是否进入调试模式,如果带有 --debug参数,我们要进行log的level设置。...commander去实现命令注册 本节代码提交至:liugezhou-yargs-demo 其中 bin/yargs.js是之前学习yargs的demo代码。...API 注册命令 现在默认安装commander时,已更新到7.0.0,sam老师写法还是6.X,可参考 commader for git 配置。...const { program } = require('commander') program.version('0.0.1') 若程序较为复杂,用户需要以多种方式来使用Commander,单元测试等

    90330

    Lerna 运行流程剖析

    = require("yargs/yargs"); const { globalOptions } = require("@lerna/global-options"); module.exports...Pass --help to see all available commands and options.") // 期望命令个数 .recommendCommands() // 推荐命令...显然这也导出了改 cli 实例(单一实例) 指令的注册使用了 yargs 包进行管理(yargs 不是本文重点,不赘述) 返回实例,全局指令注册 return 实例 Config 是基本的配置分组等 导出实例给.../index.js 导入的都是该目录的 command.js (同入口逻辑在 handler 执行了该目录下的 index.js ) command.js 包括 yargs 的 command、aliases...== '' && require(localFile); }; 通过最后一行,可以分析出,最核心的是解析出指定的 npm 包存在全局和 npm 的文件夹、路径。

    92210
    领券