一個使用界面進行交互的命令行集合
4.0以上的版本只支持node 6以上的,node4請使用3.xnode
努力去作一個容易的 嵌入式的(embeddable) 和優美的命令行界面
應該簡化一下的過程:
-提供一個錯誤回調
-詢問
-解析(parsing )輸入
-驗證答案
-管理層次提示npm
npm install inquirer
var inquirer = require('inquirer'); inquirer .prompt([ /* Pass your questions in here */ ]) .then(answers => { // Use user feedback for... whatever!! });
案例位置數組
node packages/inquirer/examples/pizza.js node packages/inquirer/examples/checkbox.js # etc...
inquirer.prompt(questions) -> promise
調出提示界面
-questions (數組類型)包含一個Question 對象
-返回一個promisepromise
inquirer.registerPrompt(name, prompt)
使用name註冊prompt
-name:prompt的名字
-prompt:prompt事件函數
inquirer.createPromptModule() -> prompt function
建立一個自包含的問答模塊,當你複寫或者添加一個新的問答模塊時,你不但願影響其餘模塊,你也能夠這麼作ui
var prompt = inquirer.createPromptModule(); prompt(questions).then(/* ... */);
*Question*
一個question object是一個包含於問題有關係的hash
type(字符串):prompt的類型,默認是input,值列表:input, confirm, list, rawlist, expand, checkbox, password, editor
name(string):在下面答案對象中存儲用戶輸入的答案的標誌名
message(字符串|函數):輸出的問題,若是是一個函數 第一個參數默認是用戶輸入的答案,默認值是name
default(String|Number|Boolean|Array|Function):若是用戶沒有輸入任何值,這裏存放默認值,或者是一個函數返回一個默認值,若是被定義爲一個函數,第一個參數默認是用戶的輸入值
choices(Array|Function):一個數組 或者是一個返回數組的函數,若是被定義成函數 第一個參數是用戶的輸入值,數組能夠是一個字符串數組,或者是一個字段數組,字典的屬性有name、value、properties,
validate(Function):一個接受用戶輸入的方法,若是驗證成功的話 應該返回true,若是失敗的話,須要返回一個字符串,字符串是錯誤信息,若是你返回false的話 咱們就會使用默認錯誤信息
filter(Function):一個將用戶輸入的進行過濾的方法
pageSize(Number):更改當使用list rawList expand 或者checkbox時候應該使用的行數this
在每個提示中包含答案的散列
-Key :question object的名稱
-Value :((他的類型取決於問題)
-confirm(boolern)
-input 用戶輸入的信息(若是使用了filter,則進行過濾)
-rawlist list:用戶選擇的值命令行
分隔符(Separator)
一個分隔符能夠被添加進choices 數組:code
// In the question object choices: [ "Choice A", new inquirer.Separator(), "choice B" ] // Which'll be displayed this way [?] What do you want to do? > Order a pizza Make a reservation -------- Ask opening hours Talk to the receptionist