【yargs】使用教程——version-17.2.0

【yargs】使用教程——version-17.2.0yargs介绍 命令介绍 当我们想通过vue-cli来创建一个vue项目。我们会运行vue create app。那么vue是如何成为一个全局命令的?在控制台输入which vue。我们将会得到一个路

yargs介绍

Yargs be a node.js library fer hearties tryin’ ter parse optstrings

Yargs 框架通过使用 Node.js 构建功能全面的命令行应用,它能轻松配置命令,解析多个参数,并设置快捷方式等,还能自动生成帮助菜单。lerna源码使用yargs。

命令介绍

当我们想通过vue-cli来创建一个vue项目。我们会运行vue create app。那么vue是如何成为一个全局命令的?在控制台输入which vue。我们将会得到一个路径,进入该路径,执行ls -la可以看到vue命令是一个软连接。指向本地vue安装路径。

$ which vue 
 $ cd /usr/local/bin
$ ls -la

lrwxr-xr-x   1 admin  admin    62  9  2 19:44 vue -> ../../../Users/admin/.config/yarn/global/node_modules/.bin/vue

我们在控制台输入指令后,系统会通过软连接,找到执行文件。

$ cd ../../../Users/admin/.config/yarn/global/node_modules/.bin/ cat vue

通过上述命令,可以找到vue命令的执行文件。 在文件的开头可以看到这样一行代码。#!/usr/bin/env node 用于指明该脚本文件要使用node来执行。

#!/usr/bin/env node

命令组成

程序员对命令都再熟悉不过了。我们日常开发中。经常需要使用命令在中间去执行一些操作。比如git等。我们日常输入的命令有一些不同类型。那么命令是怎么组成的。

git add
git -v
git rebase -i

command [-options] [parameter]

  • command:命令名, 比如: ls、pwd
  • [-options]:选项,可以有零个、一个或者多个选项,多个选项可以合并,比如使用的 -r 就是选项。 【如: ls -l -a】
  • [parameter]:参数,可以有零个、一个 或者 多个参数, 比如: touch 文件名、mkdir 目录名、cd 目标目录(路径),这些文件名和目录名都是参数。 【touch 1.txt 2.txt】
  • []:代表可选

node相关知识点了解(熟悉可跳过)

在介绍yargs的使用之前,我们先来看一下nodejs相关的api,帮助我们更好的使用和了解yargs。熟悉argv的同学可直接跳过本小节介绍。

argv介绍

在使用yargs之前,我们西拿来了解一下node process.argv。node有一个全局对象process,通过process可以获取argv。

  • process 对象提供有关当前 Node.js 进程的信息并对其进行控制。
  • process.argv 返回数组,其中包含启动 Node.js 进程时传入的命令行参数。

通过一个小栗子,可以直观的了解到argv。首先我们在本地新建一个index.js文件。内容如下

console.log(process.argv)

接着通过nodejs执行该文件。在控制台输入,node index.js test

我们会在控制台得到一个数组


[ '/Users/admin/.nvm/versions/node/v12.22.3/bin/node', '/Users/admin/Documents/test/index.js', 'test']

process.argv[0]表示启动node进程的绝对路径 process.argv[1]表示当前文件的绝对路径 process.argv[2]之后则是我们在命令里面输入的参数

yargs 使用

基础

  • 安装依赖
$ npm i yargs
  • 引入
const yargs = requier('yargs/yargs')

// or

import yargs from 'yargs' // 从v16起,支持ESM import

本地初始化一个项目

$ mkdir demo
$ cd demo
$ npm init -y

在package里面加入bin


{
  "name": "demo",
  ···
  "bin":{
      "cli-test":"bin/index.js"
  }
}

创建一个index.js,在js文件的开头加入#!/usr/bin/env node


#!/usr/bin/env node


const yargs = require('yargs/yargs')
const {hideBin} = require('yargs/helpers')
const arg = hideBin(process.argv)
// hideBin功能相当于process.argv.slice(2)。但是他兼容环境的变化。如Electron

const cli = yargs(arg)
console.log(cli)




在根目录执行npm link 给cli-test添加软连接。后面可以直接在控制台输入cli-test


$ cli-test

cli Jt {
  customScriptName: false,
  parsed: false,
  '$0': 'cli-text',
  argv: [cli-test]
}

$ cli-text  --version
$ cli-text  --help

yargs自带version和help的功能。

yargs功能

usage

cli.usage('Usage: test [command] <options>')
$ cli-test --help

Usage: test [command] <options>

选项:
  --help     显示帮助信息                                                 [布尔]
  --version  显示版本号                                                   [布尔]

option

cli.option('optionTest',{type:"boolean",describe:'this is a option test',alias:'ot'}).argv

$ cli-test -h

运行cli-test -h 可以看到控制台打印出option选项

--optionTest, --ot  this is a option test                           [布尔]

command添加一个命令


cli.command('test','this is a test command',(yargs)=>{},(argv)=>{}).argv

$ cli-test test

alias设置别名


cli.alias('v','version')
cli.alias('h','help')

$ cli-test -v
$ cli-test -h

wrap设置宽度

cli.wrap(100).argv

grounp option分组在展示

cli.option('debugTest',{type:"boolean",describe:'this is a option test',alias:'ot'})
.group(['debugTest'],'dev option')
.argv
$ cli-test -h
Usage: test [command] <options>

命令:
  cli-test test  this is a test command

dev option
      --debugTest, --ot  this is a option test                            [布尔]

选项:
      --optionTest, --ot  this is a option test                           [布尔]
  -v, --version           显示版本号                                      [布尔]
  -h, --help              显示帮助信息                                    [布尔]

epilogue在控制面板底部显示的文案

cli..epilogue('bottom text').argv
$ cli-test -h
$ cli-test -h
  -v, --version           显示版本号                                      [布尔]
  -h, --help              显示帮助信息                                    [布尔]

bottom text

recommendCommands 命令纠错提示

cli
.recommendCommands()
.command('list','starg',(yargs)=>{
    return yargs
},()=>{})
.argv

$ cli-test li

cli-test [命令]

命令:
  cli-test list  starg

选项:
  -v, --version  显示版本号                                               [布尔]
  -h, --help     显示帮助信息                                             [布尔]

是指 list?

今天的文章【yargs】使用教程——version-17.2.0分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/15267.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注