自主搭建5个精品脚手架,玩转前端提效无秘分享
获课:www点
999it点
top/220/
获取ZY↑↑方打开链接↑↑
yargs
是一个用于在 Node.js 中构建交互式命令行工具的强大库。它使得处理命令行参数和选项变得简单而直观。以下是
yargs
的一些高级用法讲解:
1. 命令分组
yargs
允许你将相关的命令进行分组,使命令行界面更具组织性和可读性。
收起
javascript
const yargs = require('yargs');yargs.commandGroup('group1:group1 相关命令', [ 'sub-command1', 'sub-command2' ]).command('sub-command1', '子命令 1 的描述', () => {}, (argv) => { console.log('执行子命令 1', argv); }).command('sub-command2', '子命令 2 的描述', () => {}, (argv) => { console.log('执行子命令 2', argv); }).help().argv;
2. 命令别名
为常用命令设置别名,方便用户快速输入。
收起
javascript
const yargs = require('yargs');yargs.command('create', '创建新资源', () => {}, (argv) => { console.log('执行创建操作', argv); }).alias('create', 'c').help().argv;
3. 选项的默认值、描述和类型
为选项提供默认值、详细描述以及指定类型,增强用户体验和输入验证。
收起
javascript
const yargs = require('yargs');yargs.option('name', { alias: 'n', describe: '用户名', type:'string', default: '匿名用户' }).help().argv;
4. 选项的互斥性
确保某些选项不能同时使用。
收起
javascript
const yargs = require('yargs');yargs.option('option1', { alias: 'o1', describe: '选项 1', type:'string' }).option('option2', { alias: 'o2', describe: '选项 2', type:'string' }).mutex(['option1', 'option2']).help().argv;
5. 动态生成命令
根据运行时的条件动态生成命令。
收起
javascript
const yargs = require('yargs');const fs = require('fs');// 读取目录下的文件,根据文件名动态生成命令const files = fs.readdirSync('.');files.forEach((file) => { yargs.command(file, `对 ${file} 执行操作`, () => {}, (argv) => { console.log(`对 ${file} 执行操作`, argv); });});yargs.help().argv;
6. 中间件(Middleware)
在处理命令之前或之后执行一些通用逻辑。
收起
javascript
const yargs = require('yargs');yargs.middleware((argv) => { console.log('中间件执行,当前参数:', argv); return argv; }).command('example', '示例命令', () => {}, (argv) => { console.log('执行示例命令', argv); }).help().argv;
7. 自定义帮助信息
定制
yargs
生成的默认帮助信息,使其更符合你的需求。
收起
javascript
const yargs = require('yargs');yargs.help('h').alias('h', 'help').epilog('有关更多信息,请访问:https://example.com').argv;
8. 解析非标准格式的参数
yargs
可以通过
parse()
方法解析非标准格式的参数。
收起
javascript
const yargs = require('yargs');const customArgs = '--name=John --age=30';const argv = yargs.parse(customArgs);console.log(argv);
这些高级用法展示了
yargs
的强大功能和灵活性,能够帮助你创建出功能丰富、用户友好的命令行工具。
有疑问加站长微信联系(非本文作者)