inquirer 是一个 Node.js 命令行交互库,用于创建交互式命令行界面(CLI) ,让用户通过问答形式输入信息。
核心功能
它提供多种交互方式,比如:
- 输入框(input/password):输入文本或密码
- 选择列表(list/rawlist):从选项中单选
- 复选框(checkbox):从选项中多选
- 确认框(confirm):是/否确认
- 编辑器(editor):打开编辑器输入多行文本
1. 配置向导(wizard.ts)
- 询问是否使用已保存的 API Key
- 选择 npm 镜像源(公司内部/淘宝/官方)
- 多选要管理的编码工具
- 确认是否安装未安装的工具
- 是否进入插件市场
2. 认证管理(auth.ts)
- 选择编码套餐类型
- 输入 API Key(密码隐藏)
- 选择要重新加载配置的工具
3. 卸载命令(index.ts)
- 多选要卸载的已安装工具
使用示例
import inquirer from "inquirer";
const { apiKey } = await inquirer.prompt([
{
type: "password", // 密码类型,输入会被隐藏
name: "apiKey", // 返回值的键名
message: "请输入 API Key:",
mask: "*", // 显示为星号
validate: (input) => input.trim() ? true : "API Key 不能为空",
},
]);
为什么用它
相比手动解析命令行参数,inquirer 提供了更友好的引导式交互体验,特别适合需要用户逐步配置的场景,让 CLI 工具更易用。