Node CLI 之 Yargs (2)

2023-12-14 20:34:50

什么是 yargs?

yargs 是一个用于处理命令行参数的 Node.js 库

安装 yargs

npm install yargs

简单例子

在这里插入图片描述
不定义任何选项,直接便可以使用

定义命令

const yargs = require('yargs')

yargs.command('hello', 'Prints hello world', (yargs) => {}, (argv) => {}).argv;
  • 第一个参数 命令名称
  • 第二个参数 命令描述
  • 第三个参数 配置参数、别名、类型、默认值等
  • 第四个参数 处理命令逻辑

举个例子

const yargs = require('yargs')

yargs
  .command(
    'get',
    'make a get HTTP request',
    function (yargs) {
      return yargs.option('u', {
        alias: 'url',
        describe: 'the URL to make an HTTP request to'
      })
    },
    function (argv) {
      console.log(argv.url)
    }
  )
  .help()
  .argv

定义 option

1. 定义选项
#! /usr/bin/env node

const yargs = require("yargs");

yargs.option("name", {
  alias: "n",
  description: "Your name",
  type: "string",
  demandOption: true,
}).argv;

console.log(`Hello ${yargs.argv.name}!`);
  • 第一个参数 定义选项名称
  • 第二个参数 配置选项
    • alias 选项简写
    • description 选项描述
    • type 选项值类型
    • demandOption 选项是否必填
获取选项值
const argv = yargs.argv;

console.log(argv.name)
选项扩展
默认值 使用 default 实现
.option('age', {
  description: 'Your age',
  type: 'number',
  default: 18
})

别名 使用 alias 实现
.option('gender', {
  alias: 'g',
  description: 'Your gender',
  type: 'string'
})

参数校验
.option('gender', {
  alias: 'g',
  description: 'Your gender',
  type: 'string'
})
.check((argv) => {
  if (argv.age < 0) {
    throw new Error('Age cannot be negative');
  }
  return true;
})

官网文档:https://github.com/yargs/yargs/blob/main/docs/advanced.md#commands

文章来源:https://blog.csdn.net/weixin_40639095/article/details/134933489
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。