自主搭建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
的强大功能和灵活性,能够帮助你创建出功能丰富、用户友好的命令行工具。

