介绍
prompt 是一个命令行交互插件,常用于开发CLI时接收用户输入信息。
比如 vue cli 就使用了该库来根据用户所回答的不同问题答案来初始化项目
使用
npm install --save prompts
prompts 支持以下几种问题形式:
- text - 文本输入
- password - 非明文文本输入(
***形式) - invisible - 不可见的文本输入(无法知晓输入内容及长度)
- number - 数字, 可以设置最大最小值
- confirm - 确认(
y/N) - list - 列表输入,默认逗号分隔
- toggle - 开关,选择 yes 或 no
- select - 列表单选
- multiselect - 列表多选
- autocompleteMultiselect - 支持搜索的列表多选
- autocomplete - 支持搜索的列表单选
- date - 日期格式
问题的格式基本为下面这种形式
{
type: 'text', // 对应上面的问题类型👆
name: 'key', // 接收该输入的键名
message: '给用户看的说明',
// ... 其他根据不同类型的不同属性,可以在官网进行查看
}
调用方法如下
const prompts = require('prompts')
// 问题列表
const questions = [
{
type: 'text',
name: 'value',
message: '随便输入点什么'
}
]
// 调用
prompts(questions).then(answer => {
console.log(answer)
// answer 即为 { value: '' }
})
prompts 支持条件问题,即问题的type可以接收一个方法,方法入参为上一个问题的答案,可以根据上一题答案来判断是否需要跳过下一题,如果需要跳过,则将该方法返回 null即可。