npm 包 @cto.ai/inquirer 使用教程

简介

@cto.ai/inquirer 是一个基于 Node.js 的命令行交互工具,它可以帮助你快速实现命令行界面,并方便地接收用户输入。它是一个开源的 npm 包,具有较高的使用率和良好的用户评价。

安装

使用 npm 进行安装:

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

快速上手

首先,我们需要导入 inquirer。示例代码如下:

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

接下来,我们可以使用 inquirer 提供的 API 进行交互。以下是一个简单的示例,用于获取用户输入的姓名、性别和年龄:

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

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

运行代码后,你将看到如下的交互式界面:

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

用户输入完毕后,程序会打印出用户的输入:

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

使用示例

在命令行中选择一个项目模板

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

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

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

运行代码后,你将看到如下的交互式界面:

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

用户选择后,程序会打印出用户的选择:

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

在命令行中输入多个 Github 仓库名

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

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

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

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

运行代码后,你将看到如下的交互式界面:

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

用户输入多个仓库名,使用回车键分隔。用户输入完毕后,程序会打印出用户的输入:

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

API 参考

inquirer.prompt(questions)

该方法用于在命令行中获取用户输入。它的参数是一个数组,数组中的每一个元素都是一个用于定义一个问题的对象。

示例代码:

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

其中,每一个问题对象都必须包含以下属性:

  • type:表示问题的类型。常见的问题类型有 inputlistconfirmrawlisteditor 等。
  • name:表示问题的名称,相当于是一个键名,用于在后续的代码中获取用户输入的值。
  • message:表示问题的文本描述,将会显示在命令行界面中,提示用户输入。
  • default:表示问题的默认值。
  • validate:表示用户输入的验证函数。它会接收用户输入的值作为参数,需要返回一个布尔值或一个字符串。如果返回的是布尔值,表示用户输入是否合法;如果返回的是字符串,则代表用户输入不合法时的错误提示。

其他属性则根据问题的类型而有所区别。用户输入的值将会以 name 属性指定的名称为键名,保存在一个对象中,并通过 inquirer.prompt 方法返回。

inquirer.Separator

用于界面分隔符的对象,常用于在多个选择项之间添加分割线。

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

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

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

inquirer.registerPrompt(name, prompt)

用于注册自定义的问题类型。它需要两个参数:第一个参数是自定义的问题类型名称,第二个参数是一个问答对象,定义了该问题类型的行为。

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

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

示例代码中注册了一个名为 add 的问答对象,它会将输入的两个数值处理成一个数组返回。用户可以通过以下方式调用:

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

inquirer.createPromptModule()

该方法返回一个用于创建自定义 prompt 的函数。

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

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

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

总结

@cto.ai/inquirer 是一个功能强大、易于使用的命令行交互工具,不论你是开发命令行应用,还是需要在许多用户之间进行一些数据输入和验证,都能够起到很大的帮助作用。通过本文的介绍,相信读者已经对它的基本用法以及常用 API 有了一定的认识,欢迎在实践中逐步探索更多的应用场景!

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/the-cto-ai-inquirer


猜你喜欢

  • npm 包 workq 使用教程

    前言 在前端开发的过程中,我们经常需要在代码中加入异步任务。而在现代化的开发环境中,我们可以使用 Promise、async/await 等方式轻松地实现任务的异步处理。

    4 年前
  • npm 包 secure-json-parse 使用教程

    简介 在前端开发中,我们常常需要将 JSON 格式的数据进行解析。然而,传统的 JSON 解析方法容易受到各种攻击,使得应用程序的安全性无法得到有效保障。为了解决这个问题,我们可以使用 npm 包 s...

    4 年前
  • npm 包@hapi/good-squeeze 使用教程

    在前端开发中,npm是不可或缺的工具。@hapi/good-squeeze是一款npm包,它可以帮助我们在Node.js应用程序中筛选和格式化记录。本文将详细介绍该npm包的使用教程,并提供几个示例代...

    4 年前
  • npm 包 @hapi/good-console 使用教程

    在前端开发中,经常需要查看应用程序的日志以便于调试。而 @hapi/good-console 是一款轻便而强大的日志记录工具,通过这篇文章,我们将会详细介绍如何在您的应用程序中使用它。

    4 年前
  • npm 包 @hapi/good 使用教程

    前言 在前端开发中,我们通常需要记录各种日志,以便于后期的调试、优化和分析。而 @hapi/good 就是一款可以方便地记录日志的 npm 包,它提供了多种插件,可以灵活定制日志的格式、输出方式和内容...

    4 年前
  • npm 包 @types/random-seed 使用教程

    @types/random-seed 是一个 npm 包,提供了 Typescript 的类型定义文件,可以帮助开发者使用 random-seed 库时更方便地进行类型检查和编辑器提示。

    4 年前
  • npm 包 @types/socketcluster 使用教程

    简介 在前端开发中,SocketCluster 是一个广泛使用的 JavaScript 库,许多前端工程师熟知它的应用和使用。但是,在应用 SocketCluster 时,我们需要使用很多 TypeS...

    4 年前
  • npm 包 @types/scc-broker-client 使用教程

    简介 @scc-broker-client 是一个用于构建分布式应用程序的 JavaScript 库,它允许您在同一网络上的多个节点之间进行实时通信。在使用 JavaScript 编写应用程序时,我们...

    4 年前
  • npm 包 @types/lodash.take 使用教程

    简介 @types/lodash.take 是一款专为 lodash.take 函数提供类型支持的 npm 包,其主要作用是对 lodash.take 函数的参数和返回值进行类型检查,从而提高代码的可...

    4 年前
  • npm 包 @types/lodash.shuffle 使用教程

    在前端开发中,我们常常需要处理数组,其中有一项常见的操作就是将数组乱序。其中,Lodash 是一个非常好用的 JavaScript 工具库,而 @types/lodash.shuffle 就是用于将数...

    4 年前
  • npm 包 @types/lodash.sample 使用教程

    在前端开发中,lodash 是非常常用的一个 JavaScript 工具库。它包含了很多实用的方法,可以帮助我们简化开发流程。而 npm 软件包管理器则是为我们提供了一种便捷的方式来获取和管理我们的依...

    4 年前
  • npm 包 @types/lodash.head 使用教程

    什么是 npm 包 @types/lodash.head? 在前端开发中,我们有时需要使用一些 JavaScript 库,以便快速地实现某些功能或避免重复造轮子。Lodash 就是一个非常流行的 Ja...

    4 年前
  • npm 包 @types/lodash.chunk 使用教程

    简介 在前端开发中,我们经常需要对数组进行分块处理。lodash 是一款非常优秀的 JavaScript 工具库,其中的 _.chunk() 方法可以方便地对数组进行分块处理。

    4 年前
  • npm 包 @types/hapi__sntp 使用教程

    在进行 Node.js 开发中,hapi-sntp 是一个常见的时间同步库。而为了增加开发体验以及代码可读性,我们通常会使用 TypeScript 进行开发。为了让我们在 TypeScript 中愉快...

    4 年前
  • npm 包 scc-broker-client 使用教程

    前言 在前端开发过程中,我们经常需要处理各种数据交互的问题。由于数据的异步性和复杂性,我们需要使用一些工具来帮助我们处理这些问题。其中,scc-broker-client 是一个非常有用的 npm 包...

    4 年前
  • npm包rate-limiter-flexible使用教程

    在现代应用中,频率限制是防止恶意攻击和滥用的重要策略。在前端应用中,可以使用npm包rate-limiter-flexible来实现限制请求的频率。这篇文章将介绍如何使用rate-limiter-fl...

    4 年前
  • 前端技术文章:NPM包 hapi-rate-limit 使用教程

    在现如今的 Web 开发中,服务器压力一直是前端开发者头疼的问题。极为频繁的请求,不仅会降低服务器的性能,还可能引发安全问题。这时候我们需要一个工具来解决这个问题,hapi-rate-limit 就是...

    4 年前
  • npm 包 @hapi/sntp 使用教程

    前言 在前端开发中,时钟同步对于一些业务操作和定时任务的准确性非常重要。而 @hapi/sntp 是一个浏览器、Node.js 等平台通用的 NTP 协议包,可以用于时间同步。

    4 年前
  • npm 包 @types/socketcluster-client 使用教程

    前言 SocketCluster 是一个高度可扩展的实时 Web 框架,用于构建实时应用程序。@types/socketcluster-client 是一个支持 SocketCluster 客户端 T...

    4 年前
  • npm 包 @types/pretty-ms 使用教程

    前言 在前端开发中,经常需要处理时间和日期。pretty-ms 是一个 JavaScript 库,可以将毫秒时间转换为易于读取的字符串。而 @types/pretty-ms 是其 TypeScript...

    4 年前

相关推荐

    暂无文章