npm 包 inquirer-hierarchical 使用教程

前言:

inquirer-hierarchical 是 inquirer.js 的一个子模块,旨在帮助开发者创建一个更为优雅的命令行交互界面。它可以让你创建一个包含嵌套问题的交互式命令行程序,最大的特点就是可嵌套,类似目录结构。

本篇文章将详细介绍如何使用 inquirer-hierarchical,让你轻松优美地创建交互式命令行程序。

什么是 inquirer-hierarchical

inquirer-hierarchical 是一个 Node.js 模块,它是基于 inquirer.js 的,并扩展了 inquirer.js 的功能。相较于 inquirer.js,inquirer-hierarchical 支持嵌套问题的创建,可以模拟文件目录的结构,让你创建出更为复杂的交互式命令行程序。

如何安装 inquirer-hierarchical

使用 npm 安装:

--- ------- --------------------- ------

如何使用 inquirer-hierarchical

需要导入 inquirer-hierarchical 模块,然后创建一个 Prompt 类型的问题(问题类似于 inquirer.js,Prompt 类是其中的一个,包含所有类型的问题),然后执行这个问题的 prompt() 方法即可。

让我们来看一个例子:

----- ------------ - ---------------------------------

----- ------- - --- --------------
    ----- ----------
    -------- -------------
    ----- -------
    -------- -
        -
            ----- ------
            ------ ------
            --------- -
                -
                    ----- --------
                    ------ -----------
                --
                -
                    ----- ---------
                    ------ ------------
                -
            -
        --
        -
            ----- ------
            ------ ------
            --------- -
                -
                    ----- ----------
                    ------ -------------
                --
                -
                    ----- -------
                    ------ ----------
                -
            -
        -
    -
---

----------------------------- -- -
    ---------------------
---

上面的示例中我们创建了一个 Prompt 类型的问题,并将它导出为 prompts。这个问题的属性包括:

  • name (字符串):问题的名字;
  • message (字符串):问题的提示语句;
  • type (字符串):问题的类型,例如 list、input、checkbox 等;
  • choices (数组):包含问题的选项及它们的值,这个时候我们可以通过 children 属性嵌套问题。

在 prompt() 方法中,我们将 prompts 执行了一次,返回了用户的输入,最终将用户的输入输出在控制台中。

执行此示例将会在命令行生成以下问题:

----------
- ---
  ---

当选择其中的一个选项后,例如 git,问题变为:

----------
  ---
- ---

再次选择其中一个选项,例如 commit,则问题变为:

----------
  ---
  ------ -----
- ----- -----
  ---- -----

最终用户结果为:

- -------- ------------ -

这个例子简单,但给我们展示了如何使用 inquirer-hierarchical。接下来我们将更深入地学习相关特性。

options 选项

在创建问题的时候,除了上述例子中的 name、message、type、choices 属性外,还有一些可用的选项。

separator

选项 separator 可以帮助你将列表分隔开来,例如:

----- ------- - --- --------------
    ----- -------
    -------- ---------
    ----- -------
    -------- -
        - ----- --- --- ------ --- --
        - ----- --- --- ------ --- --
        --- -------------------------
        - ----- --- --- ------ --- --
        - ----- --- --- ------ --- --
    --
---

loopedSeparator

选项 loopedSeparator 同样是用于分隔列表的,但是这个选项提供了循环分隔符功能,你可以在列表里使用两个或更多分隔符,inquirer-hierarchical 可以在它们中间循环,以增加可读性和美观性。

----- ------- - --- --------------
    ----- -------
    -------- ---------
    ----- -------
    -------- -
        - ----- --- --- ------ --- --
        - ----- --- --- ------ --- --
        --- ------------------------------- -----
        - ----- --- --- ------ --- --
        - ----- --- --- ------ --- --
    --
---

default

选项 default 可以设置默认选项:

----- ------- - --- --------------
    ----- -------
    -------- ---------
    ----- -------
    -------- -
        - ----- --- --- ------ --- --
        - ----- --- --- ------ --- --
        --- -------------------------
        - ----- --- --- ------ --- --
        - ----- --- --- ------ --- --
    --
    -------- ----
---

pageSize

选项 pageSize 可以设置显示的列表长度,当你的列表比较长的时候,它非常有用:

----- ------- - --- --------------
    ----- -------
    -------- ---------
    ----- -------
    -------- -
        - ----- --- --- ------ --- --
        - ----- --- --- ------ --- --
        --- -------------------------
        - ----- --- --- ------ --- --
        - ----- --- --- ------ --- --
        - ----- --- --- ------ --- --
    --
    --------- --
---

result

选项 result 可以让用户选择时返回一个任意的值,这个值可以是一个数组,可以是一个函数,可以是一个 Promise,当然也可以是其他值。

----- ------- - --- --------------
    ----- -------
    -------- ---------
    ----- -------
    -------- -
        - ----- --- --- ------ --- --
        - ----- --- --- ------ --- --
        --- -------------------------
        - ----- --- --- ------ --- --
        - ----- --- --- ------ --- --
        - ----- --- --- ------ --- --
    --
    ------- -------- -------- -
        ------ --- ----------------- -- -
            ------------- -- -
                ----------------------
            -- ------
        ---
    --
---

validate

选项 validate 可以独立验证选择的值是否有效:

----- ------- - --- --------------
    ----- -------
    -------- ---------
    ----- -------
    -------- -
        - ----- --- --- ------ --- --
        - ----- --- --- ------ --- --
        --- -------------------------
        - ----- --- --- ------ --- --
        - ----- --- --- ------ --- --
        - ----- --- --- ------ --- --
    --
    --------- ------- -- - ------ ----- - ---- - ------- --
---

when

选项 when 能够通过指定某项值来控制问题是否展示:

----- ------- - --- --------------
    ----- -------
    -------- -------------
    ----- -------
    -------- -
        -
            ----- ------
            ------ ------
            --------- -
                -
                    ----- --------
                    ------ -----------
                --
                -
                    ----- ---------
                    ------ ------------
                -
            -
        --
        -
            ----- ------
            ------ ------
            ----- --------- -- -
                ------ --------------- --- ------
            --
            --------- -
                -
                    ----- ----------
                    ------ -------------
                --
                -
                    ----- ------- 
                    ------ ----------
                -
            -
        -
    -
---

结语

在本文中我们介绍了 inquirer-hierarchical 的安装和使用方法,并且着重介绍了各个选项,希望对你完成一个高效优美的交互式命令行有所帮助。如果有任何问题,请随时联系笔者。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005590681e8991b448d65ab


猜你喜欢

  • npm 包 exhibit-plugin-vm 使用教程

    简介 exhibit-plugin-vm 是一个在浏览器中运行虚拟机的 npm 包,它为前端开发者提供了一个简单易用的方式来运行 JavaScript 代码。在本文中,我们将介绍如何使用 exhibi...

    2 年前
  • npm 包 node-mplayer-lirongfei 使用教程

    在前端开发中,我们经常需要使用到音频播放功能。而 node-mplayer-lirongfei 是一款基于 Node.js 的音频播放库,它的主要特点是支持多种格式的音频文件,并且具有丰富的播放控制功...

    2 年前
  • npm 包 marvel-dc-name-generator 使用教程

    随着前端技术的不断发展,现在越来越多的开源工具和框架被开发出来,方便了前端开发人员的工作。其中一个非常有用的开源工具就是 npm 包 marvel-dc-name-generator。

    2 年前
  • npm 包 the-demo-controller 使用教程

    前言 在项目开发过程中,有时需要通过展示示例来更好地体现功能。而 the-demo-controller 就是一个 npm 包,可以用于展示示例,并方便地对示例进行管理。

    2 年前
  • npm 包 tachyons-flex-grid 使用教程

    简介 tachyons-flex-grid 是一个基于 Tachyons 框架的用于创建响应式网格化布局的 npm 包。 它提供了一种更加简洁和易于使用的方法来创建灵活的响应式布局,同时保留了 Tac...

    2 年前
  • npm 包 twitterfetcher 使用教程

    在前端开发的过程中,经常需要获取 Twitter 上的数据。而且,使用 twitterfetcher 这个 npm 包,可以轻松地获取 Twitter 上的信息,包括推文、用户以及带有指定主题的推文等...

    2 年前
  • npm 包 metrictools 使用教程

    简介 npm 包 metrictools 是一款用于浏览器端以及服务器端的性能分析工具,它帮助前端开发者以及运维人员全面了解应用程序的运行状态以及性能瓶颈。 metrictools 可以为我们提供多个...

    2 年前
  • npm 包 sensitive-words-tutorial 使用教程

    在前端开发中,敏感词过滤是常见的需求,但是手动实现比较麻烦。幸运的是,有一个 npm 包叫做 sensitive-words,它提供了方便的敏感词过滤功能。 本文将详细介绍 npm 包 sensiti...

    2 年前
  • npm 包 expo-browser-push 使用教程

    前言 如今,移动应用开发已成为一个非常重要的领域。作为前端工程师,我们需要掌握越来越多的在移动应用开发、桌面应用开发等方面的技能。其中一个重要的技术就是推送服务。 在移动和桌面应用的推送服务中,exp...

    2 年前
  • npm 包 angular2-multimentions 使用教程

    在前端开发中,经常需要使用到输入框中所谓“@多选”功能,如邮件地址输入时可以输入多个地址,并且可以使用自动提示功能。这时,我们可以使用一个方便的 npm 包 angular2-multimention...

    2 年前
  • npm 包 spellcheck-json 使用教程

    在软件开发过程中,英语拼写错误是一个很常见的问题,有时甚至会导致一些非常尴尬的情况。如果你正在开发一个多语言的应用程序,或者需要在文本中使用英文单词,那么一个好的拼写检查工具是非常必要的。

    2 年前
  • npm 包 js-cake 使用教程

    简介 js-cake 是一款 Node.js 的 npm 包,它的功能是实现一个类似于烘焙蛋糕的模式,允许你将一些小的功能模块组织成大的、可重用的模块。 安装 你可以通过 npm 安装 js-cake...

    2 年前
  • npm 包 ltvnode 使用教程

    在前端开发中,我们经常需要使用各种 npm 包来实现某些功能或者优化代码,其中 ltvnode 是一个十分实用的 npm 包,它是一个用于计算移动 App 中的生命周期价值(LTV)的工具,能够帮助开...

    2 年前
  • npm 包 vue-kijin-validator 使用教程

    简介 vue-kijin-validator 是一个基于 Vue.js 的表单验证插件,它能够快速开发前端表单验证功能,让你的表单验证更加简便、方便和可靠。它内置了一些验证规则,同时也支持自定义规则的...

    2 年前
  • npm 包 svelte-transitions-fade 使用教程

    前言 在前端开发中,动画效果是非常重要的一部分。为了方便实现各种动画效果,开发者们常常利用第三方库和框架。在 Svelte 框架中,有一个非常好用并且易于学习的 npm 包 - svelte-tran...

    2 年前
  • npm 包 arranbartish-angular-cli-widgets 使用教程

    简介 arranbartish-angular-cli-widgets 是一个前端技术包,可以用于 Angular CLI 提供的可复用部件的集合。这个包的目的是为了使开发者能够更加快速、方便地构建 ...

    2 年前
  • npm包express-router-zen使用教程

    在Web开发中,使用框架快速搭建出一个可用的项目非常重要。Express是Node.js最流行的Web应用程序框架之一,具有灵活性和易用性,但是要想实现复杂的路由控制,需要较多的代码量。

    2 年前
  • NPM 包 React-Native-Sticky-Search-List 使用教程

    React Native 是一种非常流行的开源框架,它让开发人员可以使用 JavaScript 和 React 来构建跨平台的移动应用程序。使用 React Native 可以高效地开发应用程序,并且...

    2 年前
  • npm 包 @macko/plugin-websockets 使用教程

    前言 在现代 Web 应用的开发中,WebSockets 技术已经成为了必选项。它是一种基于 TCP 协议的双向通信的网络技术,能够提升网络应用的速度和性能,实现服务器向客户端主动推送数据,而无需客户...

    2 年前
  • npm 包 SauceNAO 使用教程

    介绍 SauceNAO 是一款非常强大的反向图像搜索工具,它可以通过输入图片,查找这张图片在互联网上的使用情况、来源和相关信息。SauceNAO 已经使用了多种搜索引擎和数据库,包括 pixiv、tw...

    2 年前

相关推荐

    暂无文章