Enquirer 是一款在终端环境下使用的交互式命令行界面(CLI)工具,可用于构建与用户进行交互的命令行应用程序。它是一个基于 Inquirer.js 的高级库,支持多种提示类型和定制选项。
安装 Enquirer
你可以通过 npm 来安装 Enquirer:
--- ------- --------
使用 Enquirer
使用 Enquirer 构建交互式命令行应用程序的过程非常简单。下面是一个例子:
----- - ------ - - -------------------- ----- --------- - - - ----- -------- ----- ----------- -------- ----- -- ---- ---------- -- - ----- ----------- ----- ----------- -------- ----- -- ---- ---------- -- - ----- --------- ----- -------- -------- ----- - ------- -------- ------- -------- ------- - -- ----------------- ------------- -- --------------------- ----------------------
这个应用程序将提示用户输入他们的用户名和密码,并让他们从一个颜色列表中选择一个颜色。
运行上面的代码,你会看到类似下面的输出:
- --------- ---------- --------- ------------- ------ ------ -
通过这种方式,你可以在命令行应用程序中与用户进行交互,获取他们的输入并执行相应的操作。
Enquirer 的提示类型
Enquirer 支持多种提示类型,包括输入、选择、密码等。下面是一些常用的示例:
输入 (input)
使用 input
类型可以让用户输入任何文本,例如用户名或电子邮件地址。
- ----- -------- ----- ----------- -------- ----- -- ---- ---------- -
密码 (password)
使用 password
类型可以让用户输入密码。输入的内容将以星号(*)显示。
- ----- ----------- ----- ----------- -------- ----- -- ---- ---------- -
单选 (select)
使用 select
类型可以让用户从一个预定义的选项列表中选择一个选项。
- ----- --------- ----- -------- -------- ----- - ------- -------- ------- -------- ------- -
多选 (multiselect)
使用 multiselect
类型可以让用户从一个预定义的选项列表中选择多个选项。
- ----- -------------- ----- --------- -------- ----- -------- -------- ------- -------- ------- -
确认 (confirm)
使用 confirm
类型可以让用户确认一个问题。用户可以回答“是”或“否”。
- ----- ---------- ----- ------------ -------- ---- --- ------ -
Enquirer 的选项
除了提示类型外,Enquirer 还支持许多其他选项,如默认值、校验器等。下面是一些常用的示例:
默认值 (default)
你可以使用 default
选项来提供一个默认值,当用户没有输入任何内容时会被使用。
- ----- -------- ----- ----------- -------- ----- -- ---- ----------- -------- --------- -
校验器 (validate)
你可以使用 validate
选项来验证用户输入的内容是否符合要求。如果不符合,你可以在错误消息中提供详细的说明。
- ----- -------- ----- -------- -------- ----- -- ---- ----- ---------- --------- --------------- - -- --------------------------- - ------ ------- ----- - ----- ----- --------- - ------ ----- - ----------------------------------------------------------- -------- ---------------------------------------------------------------------------------------