yargonaut中文文档|yargonaut js中文教程|解析

npm npmdoc 3年前 (2021-12-28) 550次浏览

yargonaut中文文档|yargonaut js中文教程|解析

安装命令:npm i yargonaut

yargonaut

用粉笔样式和 figlet 字体装饰 yargs 内容

js-标准风格
npm 版本
yargs + chalk + figlet = 是的,请

yargonaut是内容装饰yargs,让您使用自定义您的基于yargs-CLI输出
粉笔 风格
和/或
figlet字体…容易!

yargonaut 演示

为什么?因为带有颜色和 ASCII 艺术的 CLI 应用程序更有趣!

您可以在没有 yargonaut 的情况下自定义 yargs 文本,可能使用粉笔或 figlet 吗?绝对地。但是 yargonaut 让它变得如此简单!yargonaut 支持所有 yargs 和 figlet 支持的语言环境 – 开箱即用。

CLI 应用程序中的终端着色或 ASCII 艺术字体会令人讨厌吗?嗯,当然。但如果使用得体,它可以增加一定程度的创意天赋,使您的 CLI 脱颖而出。明智地使用!

安装

npm install --save yargonaut yargs
var yargonaut = require('yargonaut') // yargonaut first!
var yargs = require('yargs') // then yargs

yargonaut 假设您已经独立安装了 yargs。

要自动支持所有语言环境yargs支持,确保require('yargonaut')在代码require('yargs')这个很重要!如果您选择忽略这一点,yargonaut 将尽其所能尝试变通方法,但不会优先考虑require()语句顺序不正确引起的任何问题排序应该是自然的,因为无论如何您都需要在 yargs 解析 CLI args 之前配置 yargonaut。

请注意,yargonaut不会包装 yargs,也不是 yargs 的替代品。它旨在与 yargs 并排使用,并且不会将您锁定在特定版本的 yargs 中,尽管内部字符串自定义仅在 yargs v3.16.1 及更高版本中受支持。

如果出现任何问题,yargonaut 会尝试优雅而安静地失败,因此您的 CLI 仍然可以工作,只是没有冷色/字体。

例子

对所有顶级 yargs 字符串使用单一样式和字体:

require('yargonaut')
  .style('blue')
  .font('Small Slant') // that's it!
 
var argv = require('yargs')
  .command('add', 'Add item to cart')
  .command('rm', 'Remove item from cart')
  .option('p', {
    alias: 'product',
    describe: 'Product id(s)',
    demand: true
  })
  .option('s', {
    alias: 'size',
    describe: 'Desired product size',
    choices: ['s', 'm', 'l'],
    default: 'm'
  })
  .option('c', {
    alias: 'color',
    describe: 'Desired product color'
  })
  .example('$0 add -p 123 -s l -c green', 'Add large, green product with id 123')
  .wrap(null)
  .argv
$ node order.js
  _____                              __    _
 / ___/__  __ _  __ _  ___ ____  ___/ /__ (_)
/ /__/ _ \/  ' \/  ' \/ _ `/ _ \/ _  (_-<_
\___/\___/_/_/_/_/_/_/\_,_/_//_/\_,_/___(_)

  add  Add item to cart
  rm   Remove item from cart

  ____       __  _               _
 / __ \___  / /_(_)__  ___  ___ (_)
/ /_/ / _ \/ __/ / _ \/ _ \(_-<_
\____/ .__/\__/_/\___/_//_/___(_)
    /_/
  -p, --product  Product id(s)  [required]
  -s, --size     Desired product size  [choices: "s", "m", "l"] [default: "m"]
  -c, --color    Desired product color

   ____                     __        _
  / __/_ _____ ___ _  ___  / /__ ___ (_)
 / _/ \ \ / _ `/  ' \/ _ \/ / -_|_-<_
/___//_\_\\_,_/_/_/_/ .__/_/\__/___(_)
                   /_/
  order.js add -p 123 -s l -c green  Add large, green product with id 123

   __  ____         _                               _            __                                    __  _
  /  |/  (_)__ ___ (_)__  ___ _  _______ ___ ___ __(_)______ ___/ / ___ ________ ___ ____ _  ___ ___  / /_(_)
 / /|_/ / (_-<(_-</ / _ \/ _ `/ / __/ -_) _ `/ // / / __/ -_) _  / / _ `/ __/ _ `/ // /  ' \/ -_) _ \/ __/
/_/  /_/_/___/___/_/_//_/\_, / /_/  \__/\_, /\_,_/_/_/  \__/\_,_/  \_,_/_/  \_, /\_,_/_/_/_/\__/_//_/\__(_)  
                        /___/            /_/                               /___/
   p

对帮助内容使用一种样式和字体,对错误消息使用另一种样式和字体:

require('yargonaut')
  .help('3D-ASCII')
  .helpStyle('green')
  .errors('Calvin S')
  .errorsStyle('red')
 
var argv = require('yargs')
  .command('add', 'Add item to cart')
  .command('rm', 'Remove item from cart')
  .option('p', {
    alias: 'product',
    describe: 'Product id(s)',
    demand: true
  })
  .option('s', {
    alias: 'size',
    describe: 'Desired product size',
    choices: ['s', 'm', 'l'],
    default: 'm'
  })
  .option('c', {
    alias: 'color',
    describe: 'Desired product color'
  })
  .example('$0 add -p 123 -s l -c green', 'Add large, green product with id 123')
  .wrap(null)
  .argv
$ node order.js
 ________  ________  _____ ______   _____ ______   ________  ________   ________  ________
|\   ____\|\   __  \|\   _ \  _   \|\   _ \  _   \|\   __  \|\   ___  \|\   ___ \|\   ____\  ___
\ \  \___|\ \  \|\  \ \  \\\__\ \  \ \  \\\__\ \  \ \  \|\  \ \  \\ \  \ \  \_|\ \ \  \___|_|\__\
 \ \  \    \ \  \\\  \ \  \\|__| \  \ \  \\|__| \  \ \   __  \ \  \\ \  \ \  \ \\ \ \_____  \|__|
  \ \  \____\ \  \\\  \ \  \    \ \  \ \  \    \ \  \ \  \ \  \ \  \\ \  \ \  \_\\ \|____|\  \  ___
   \ \_______\ \_______\ \__\    \ \__\ \__\    \ \__\ \__\ \__\ \__\\ \__\ \_______\____\_\  \|\__\
    \|_______|\|_______|\|__|     \|__|\|__|     \|__|\|__|\|__|\|__| \|__|\|_______|\_________\|__|
                                                                                    \|_________|


  add  Add item to cart
  rm   Remove item from cart

 ________  ________  _________  ___  ________  ________   ________
|\   __  \|\   __  \|\___   ___\\  \|\   __  \|\   ___  \|\   ____\  ___
\ \  \|\  \ \  \|\  \|___ \  \_\ \  \ \  \|\  \ \  \\ \  \ \  \___|_|\__\
 \ \  \\\  \ \   ____\   \ \  \ \ \  \ \  \\\  \ \  \\ \  \ \_____  \|__|
  \ \  \\\  \ \  \___|    \ \  \ \ \  \ \  \\\  \ \  \\ \  \|____|\  \  ___
   \ \_______\ \__\        \ \__\ \ \__\ \_______\ \__\\ \__\____\_\  \|\__\
    \|_______|\|__|         \|__|  \|__|\|_______|\|__| \|__|\_________\|__|
                                                            \|_________|


  -p, --product  Product id(s)  [required]
  -s, --size     Desired product size  [choices: "s", "m", "l"] [default: "m"]
  -c, --color    Desired product color

 _______      ___    ___ ________  _____ ______   ________  ___       _______   ________
|\  ___ \    |\  \  /  /|\   __  \|\   _ \  _   \|\   __  \|\  \     |\  ___ \ |\   ____\  ___
\ \   __/|   \ \  \/  / | \  \|\  \ \  \\\__\ \  \ \  \|\  \ \  \    \ \   __/|\ \  \___|_|\__\
 \ \  \_|/__  \ \    / / \ \   __  \ \  \\|__| \  \ \   ____\ \  \    \ \  \_|/_\ \_____  \|__|
  \ \  \_|\ \  /     \/   \ \  \ \  \ \  \    \ \  \ \  \___|\ \  \____\ \  \_|\ \|____|\  \  ___
   \ \_______\/  /\   \    \ \__\ \__\ \__\    \ \__\ \__\    \ \_______\ \_______\____\_\  \|\__\
    \|_______/__/ /\ __\    \|__|\|__|\|__|     \|__|\|__|     \|_______|\|_______|\_________\|__|
             |__|/ \|__|                                                          \|_________|


  order.js add -p 123 -s l -c green  Add large, green product with id 123

╔╦╗┬┌─┐┌─┐┬┌┐┌┌─┐  ┬─┐┌─┐┌─┐ ┬ ┬┬┬─┐┌─┐┌┬┐  ┌─┐┬─┐┌─┐┬ ┬┌┬┐┌─┐┌┐┌┌┬┐
║║║│└─┐└─┐│││││ ┬  ├┬┘├┤ │─┼┐│ ││├┬┘├┤  ││  ├─┤├┬┘│ ┬│ ││││├┤ │││ │
╩ ╩┴└─┘└─┘┴┘└┘└─┘  ┴└─└─┘└─┘└└─┘┴┴└─└─┘─┴┘  ┴ ┴┴└─└─┘└─┘┴ ┴└─┘┘└┘ ┴
   p

仅自定义特定的 yargs 字符串:

require('yargonaut')
  .font('DOS Rebel', 'Invalid values:')
  .style('yellow', 'Invalid values:')
 
var argv = require('yargs')
  .option('s', {
    alias: 'size',
    describe: 'Desired product size',
    choices: ['s', 'm', 'l'],
    demand: true
  })
  .showHelpOnFail(false)
  .argv
$ node order.js -s xl
 █████                                  ████   ███      █████                          ████
░░███                                  ░░███  ░░░      ░░███                          ░░███
 ░███  ████████   █████ █████  ██████   ░███  ████   ███████     █████ █████  ██████   ░███  █████ ████  ██████   █████  ██
 ░███ ░░███░░███ ░░███ ░░███  ░░░░░███  ░███ ░░███  ███░░███    ░░███ ░░███  ░░░░░███  ░███ ░░███ ░███  ███░░███ ███░░  ░░
 ░███  ░███ ░███  ░███  ░███   ███████  ░███  ░███ ░███ ░███     ░███  ░███   ███████  ░███  ░███ ░███ ░███████ ░░█████
 ░███  ░███ ░███  ░░███ ███   ███░░███  ░███  ░███ ░███ ░███     ░░███ ███   ███░░███  ░███  ░███ ░███ ░███░░░   ░░░░███
 █████ ████ █████  ░░█████   ░░████████ █████ █████░░████████     ░░█████   ░░████████ █████ ░░████████░░██████  ██████  ██
░░░░░ ░░░░ ░░░░░    ░░░░░     ░░░░░░░░ ░░░░░ ░░░░░  ░░░░░░░░       ░░░░░     ░░░░░░░░ ░░░░░   ░░░░░░░░  ░░░░░░  ░░░░░░  ░░



  Argument: s, Given: "xl", Choices: "s", "m", "l"

更改特定字符串的默认呈现策略:

require('yargonaut')
  .errors('ANSI Shadow')
  .transformWholeString('Unknown argument: %s')
 
var argv = require('yargs')
  .showHelpOnFail(false)
  .strict()
  .argv
$ node order.js -a -b
██╗   ██╗███╗   ██╗██╗  ██╗███╗   ██╗ ██████╗ ██╗    ██╗███╗   ██╗     █████╗ ██████╗  ██████╗ ██╗   ██╗███╗   ███╗███████╗███╗   ██╗████████╗███████╗        █████╗        ██████╗
██║   ██║████╗  ██║██║ ██╔╝████╗  ██║██╔═══██╗██║    ██║████╗  ██║    ██╔══██╗██╔══██╗██╔════╝ ██║   ██║████╗ ████║██╔════╝████╗  ██║╚══██╔══╝██╔════╝██╗    ██╔══██╗       ██╔══██╗
██║   ██║██╔██╗ ██║█████╔╝ ██╔██╗ ██║██║   ██║██║ █╗ ██║██╔██╗ ██║    ███████║██████╔╝██║  ███╗██║   ██║██╔████╔██║█████╗  ██╔██╗ ██║   ██║   ███████╗╚═╝    ███████║       ██████╔╝
██║   ██║██║╚██╗██║██╔═██╗ ██║╚██╗██║██║   ██║██║███╗██║██║╚██╗██║    ██╔══██║██╔══██╗██║   ██║██║   ██║██║╚██╔╝██║██╔══╝  ██║╚██╗██║   ██║   ╚════██║██╗    ██╔══██║       ██╔══██╗
╚██████╔╝██║ ╚████║██║  ██╗██║ ╚████║╚██████╔╝╚███╔███╔╝██║ ╚████║    ██║  ██║██║  ██║╚██████╔╝╚██████╔╝██║ ╚═╝ ██║███████╗██║ ╚████║   ██║   ███████║╚═╝    ██║  ██║▄█╗    ██████╔╝
 ╚═════╝ ╚═╝  ╚═══╝╚═╝  ╚═╝╚═╝  ╚═══╝ ╚═════╝  ╚══╝╚══╝ ╚═╝  ╚═══╝    ╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝  ╚═════╝ ╚═╝     ╚═╝╚══════╝╚═╝  ╚═══╝   ╚═╝   ╚══════╝       ╚═╝  ╚═╝╚═╝    ╚═════╝

应用程序接口

可链接的配置方法

错误(字体)

使用指定的 figlet 字体呈现错误消息。

  • 返回:yargonaut单例
  • font: 字符串,figlet 字体的名称

错误风格(风格)

将给定的粉笔样式应用于错误消息,例如errorsStyle('red.bold')

  • 返回:yargonaut单例
  • style: 字符串,要使用的以点分隔的粉笔样式(颜色/修饰符)

字体(字体,[键])

使用指定的 figlet 字体渲染 yargs 字符串。(可选)指定字体应应用于哪些 yargs 字符串。

  • 返回:yargonaut单例
  • font: 字符串,figlet 字体的名称
  • key: 字符串或字符串数​​组,字体应应用于的可选键

帮助(字体)

使用指定的 figlet 字体呈现帮助内容字符串。

  • 返回:yargonaut单例
  • font: 字符串,figlet 字体的名称

帮助风格(风格)

应用给定的粉笔样式来帮助内容,例如helpStyle('green.underline')

  • 返回:yargonaut单例
  • style: 字符串,要使用的以点分隔的粉笔样式(颜色/修饰符)

ocd(fn)

对于对字符串转换的强迫控制,提供一个函数,yargonaut 将为每个 yargs 字符串(每个 y18n 查找)调用该函数。

  • 返回:yargonaut单例
  • fn: 返回字符串并接受以下内容的函数:

    • key: 字符串,被渲染的 yargs 键
    • origString: 字符串,y18n解析的原始字符串
    • newString: 字符串,由 yargonaut/figlet 渲染的新字符串
    • figlet: figlet,figlet 实例
    • font: 字符串,为key配置的figlet字体

风格(风格,[键])

将给定的chalk 样式应用于所有 yargs 字符串,例如style('blue'). (可选)指定样式应应用于哪些 yargs 字符串。

  • 返回:yargonaut单例
  • style: 字符串,要使用的以点分隔的粉笔样式(颜色/修饰符)
  • key:字符串或字符串数​​组,样式应应用于的可选键

transformUpToFirstColon(键)

更改特定 yargs 字符串的默认拆分/渲染策略。

  • 返回:yargonaut单例
  • key: 字符串或字符串数​​组,渲染策略应应用于的可选键

变换全字符串(键)

更改特定 yargs 字符串的默认拆分/渲染策略。

  • 返回:yargonaut单例
  • key: 字符串或字符串数​​组,渲染策略应应用于的可选键

获取方法

getAllKeys()

获取受 y18n 查找和 yargonaut 渲染影响的所有已知 yargs 字符串(帮助内容 + 错误消息)的列表。

  • 返回:字符串数组,代表所有配置的yargs字符串

获取错误键()

获取受 y18n 查找和 yargonaut 渲染影响的已知错误消息列表。

  • 返回: 字符串数组,表示配置错误 msg yargs 字符串

获取帮助键()

获取受 y18n 查找和 yargonaut 渲染约束的已知帮助内容字符串列表。

  • 返回:字符串数组,表示配置的帮助内容 yargs 字符串

玩东西的便捷方法

asFont(文本,字体,[throwErr])

将任何文本渲染为给定的 figlet 字体并作为字符串返回。

  • 返回: 字符串,呈现为字体的文本
  • text: 字符串,要渲染的文本
  • font: 字符串,用于渲染的 figlet 字体
  • throwErr: 布尔值,可选标志,用于抛出可能发生的任何错误,默认为 false

粉笔()

访问chalkyargonaut 使用实例。如果您想为自己的字符串着色而不必require('chalk')自己着色

  • 返回:chalk,粉笔实例

无花果()

访问figletyargonaut 使用实例。我的意思是,为什么不呢?

  • 返回:figlet,figlet 实例

列表字体()

获取所有支持的 figlet 字体的列表。也许您想将它与随机字体混合在一起?

  • 返回:字符串数组,表示支持的字体名称

打印字体(字体,[文本],[throwErr])

使用 .test 将一种 figlet 字体打印到标准输出console.log()

  • 返回:未定义
  • font: 字符串,要测试打印的 figlet 字体
  • text: 字符串,打印为字体的可选文本,默认为字体名称
  • throwErr: 布尔值,可选标志,用于抛出可能发生的任何错误,默认为 false

打印字体([文本],[throwErr])

使用 .test 将每个支持的 figlet 字体打印到标准输出console.log()

  • 返回:未定义
  • text: 字符串,打印为字体的可选文本,默认为字体名称
  • throwErr: 布尔值,可选标志,用于抛出可能发生的任何错误,默认为 false

执照

Apache-2.0 © Andrew Goode

项目贡献人员列表:


极客公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:yargonaut中文文档|yargonaut js中文教程|解析
喜欢 (0)
.excerpt .focus {display:none}