最近学习vue-cli的原理,当我们命令行敲入vue create
时候出现交互式命令行工具即是inquirer
。
☝ 文档地址
npm install inquirer
var inquirer = require('inquirer');
inquirer
.prompt([
/* 这里输入你想提的问题 */
])
.then(answers => {
// 用户反馈
})
.catch(error => {
if(error.isTtyError) {
// 提示无法在当前环境中呈现
} else {
// 一些别的什么问题
}
});
inquirer.prompt(questions) -> promise
启动会话
questions
是一个数组,包含Question
对象promise
对象inquirer.registerPrompt(name, prompt)
inquirer.createPromptModule() -> prompt function
这两个的用法我实在不太会,请教一下大伙
type
: (String) 提示的类型,默认值input
,可选值input
, number
, confirm
, list
, rawlist
, expand
, checkbox
, password
, editor
,后文还将继续讨论name
: (String) 提示的名称,会在answer
对象中作为key值message
: (String|Function) 在命令行打印的问题,若是函数,则第一个参数是当前的问答会话对象。缺失值为name
加冒号default
: (String|Number|Boolean|Array|Function) 如果没有输入,则选择默认值。若是函数,则第一个参数是当前的问答会话对象。choices
: (Array|Function) 数组或一个返回choices
数组的函数。若是函数,则第一个参数是当前的问答会话对象。数组中的值可以是数字,字符串,或一个对象。此对象需包含name
(在list中显示),value
(真正保存于问答会话对象的值),short
(选择后显示)。choices
数组也可包含一个Separator
validate
: (Function) 认证用户输入的值是否有效,有效则返回true
,无效则可以返回一个错误(字符串)filter
: (Function) 过滤器,接受用户输入,返回的值将作为插入到Answers
对象的值transformer
: (Function) 接受用户输入,当前的问答会话对象,和option flags
只会更改用户编辑时的显示,不会影响问答对象when
: (Function, Boolean) 判断此条问题是否应该被问到pageSize
: (Number) 当我们使用list
, rawList
,expand
or checkbox
改变行数prefix
: (String) 更改默认的前缀消息suffix
: (String) 更改默认的后缀消息askAnswered
: (Boolean) Force to prompt the question if the answer already exists.