摘要:地址好用的交互命令行工具方法啟動提示界面并返回請輸入您的名字您的名字是請輸入您的名字小明您的名字是小明在下面注冊提示插件提問的問題對象屬性提示的類型,默認為,也可以設置為接受答案的,當問題被回答,答案會以對象形式返回用于設置提問的問題如
[github地址:https://github.com/ABCDdouyae...]
inquirer好用的交互命令行工具方法
const req = require("inquirer"); req.prompt([{ type: "string", message:"請輸入您的名字", name: "name" }]).then(as=>{ console.log("您的名字是:"+as.name) }).catch(err=>{console.log(err)}) /** ? 請輸入您的名字 小明 您的名字是:小明 */
type:提示的類型(String),默認為input,也可以設置為input, confirm, list, rawlist, expand, checkbox, password, editor;
name:接受答案的key(String),當問題被回答,答案會以對象形式返回;
message:用于設置提問的問題(String|Function),如果設置為function,該function的第一個參數為近期回答的答案構成的對象;
req.prompt([{ type:"input", message:"請輸入你的名字?", name:"name", }, { type:"input", message: function(e){ return `${e.name},請輸入您的年齡?` }, name: "age" }]).then(as=>{ console.log(as) }) /** ? 請輸入你的名字? 小明 ? 小明,請輸入您的年齡? 12 { name: "小明", age: "12" } */
default:如果用戶沒有回答,默認值存在則為該問題賦值默認答案(String|Number|Boolean|Array|Function),如果設置為function,該function的第一個參數為近期回答的答案構成的對象;
choices:用于設置選擇的列表(Array|Function),如果設置為function,該function的第一個參數為近期回答的答案構成的對象;
req.prompt([{ type: "list", message:"請選擇性別", name: "name", choices: ["男", "女"] }]).then(as=>{ console.log(as) }).catch(err=>{console.log(err)}) /** ? 請選擇性別 女 { name: "女" } */
validate:用來校驗輸入的答案是否符合要求(Function),該function的第一個參數為近期回答的答案,通過返回boolean來判斷是否校驗通過,如果未通過則重新進入輸入界面;
req.prompt([{ type: "input", message:"請輸入您的電話號碼?", name: "mobile", validate:function(e){ if(e.match(/^[1][2,3,5,6,7,8][0-9]{9}$/)){return true} console.log(" 您輸入的電話號碼格式不對,請重新輸入") return false; } }]).then(as=>{ console.log(as) }).catch(err=>{console.log(err)}) /** ? 請輸入您的電話號碼? 110 您輸入的電話號碼格式不對,請重新輸入 ? 請輸入您的電話號碼? 16619928930 { mobile: "16619928930" } */
filter:對輸入的答案進行處理后返回新的答案(Function),該function的第一個參數為近期回答的答案
req.prompt([{ type: "checkbox", message:"請選擇性別?", name: "sex", choices:["男", "女"], filter:function(e){ let sex = ""; e === "女" ? sex = "woman" : sex = "man"; return sex; } }]).then(as=>{ console.log(as) }).catch(err=>{console.log(err)}) /** ?? 男 ? 女 { sex: "man" } */
transformer:對用戶的問題進行轉換(!!!!我沒看懂這個是干嘛的,有看懂的求指教)(Function)
when:用來設定這個問題是否有必要被提問(Function),返回boolean,返回false表示忽略這個問題,該function的第一個參數為近期回答的答案
req.prompt([{ type: "list", message:"請問你結婚了嗎?", name: "isMarry", choices:["結婚", "未結婚"], },{ type: "input", message:"請問你孩子多大了?", name: "age", when:function(e){ return e.isMarry === "結婚" } }]).then(as=>{ console.log(as) }).catch(err=>{console.log(err)}) /** ? 請問你結婚了嗎? 未結婚 { isMarry: "未結婚" } */
pageSize:設置選擇列表每頁顯示的可選項數目(Number)
prefix:給問題前面添加內容(String)
req.prompt([{ type: "string", message:"請輸入您的名字", name: "name", prefix:"您好" }]).then(as=>{ console.log("您的名字是:"+as.name) }).catch(err=>{console.log(err)}) /** 您好 請輸入您的名字 ww 您的名字是:ww */
suffix:給問題后面添加內容(String)
設置新的UI顯示var ui = new req.ui.BottomBar(); // During processing, update the bottom bar content to display a loader // or output a progress bar, etc ui.updateBottomBar("new bottom bar content"); req.prompt([{ type: "string", message:"請輸入您的名字", name: "name", prefix:"您好" }]).then(as=>{ console.log("您的名字是:"+as.name) }).catch(err=>{console.log(err)})采用迭代器模式
const req = require("inquirer"); const Rx = require("rxjs"); var prompts = new Rx.Subject(); req.prompt(prompts); prompts.next({ type: "string", message:"請輸入您的名字", name: "name", }); prompts.next({ type: "string", message:"請輸入您的性別", name: "sex", }); prompts.complete();
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/114366.html
摘要:地址好用的交互命令行工具方法啟動提示界面并返回請輸入您的名字您的名字是請輸入您的名字小明您的名字是小明在下面注冊提示插件提問的問題對象屬性提示的類型,默認為,也可以設置為接受答案的,當問題被回答,答案會以對象形式返回用于設置提問的問題如 [github地址:https://github.com/ABCDdouyae...] inquirer 好用的交互命令行工具 方法 1.inquir...
摘要:地址好用的交互命令行工具方法啟動提示界面并返回請輸入您的名字您的名字是請輸入您的名字小明您的名字是小明在下面注冊提示插件提問的問題對象屬性提示的類型,默認為,也可以設置為接受答案的,當問題被回答,答案會以對象形式返回用于設置提問的問題如 [github地址:https://github.com/ABCDdouyae...] inquirer 好用的交互命令行工具 方法 1.inquir...
摘要:問題如何執行外部命令,如解決方案使用庫在之前,使用函數在及之后,使用函數討論命令的執行默認不需要環境,所以當你使用作為參數時,需要將置位,否則會報錯誤通常來說對于執行系統命令,我們會想到,但在官方文檔中已經建議了使 問題 如何執行外部命令,如ls -l 解決方案 使用subprocess庫 在Python 3.5之前,使用subprocess.call()函數 >>> import s...
摘要:地址源碼依賴一個對象的屬性繼承另一個對象的屬性及其屬性描述符用法繼承者,被繼承者是否繼承者有該屬性的時候繼承默認不繼承返回繼承后的新的對象當第三個參數為時候,原對象又該屬性則沒有繼承被繼承者的屬性和屬性描述符 [github地址:https://github.com/ABCDdouyae...] merge-descriptors (express源碼依賴) 一個對象的屬性繼承另一個對...
摘要:地址源碼依賴一個對象的屬性繼承另一個對象的屬性及其屬性描述符用法繼承者,被繼承者是否繼承者有該屬性的時候繼承默認不繼承返回繼承后的新的對象當第三個參數為時候,原對象又該屬性則沒有繼承被繼承者的屬性和屬性描述符 [github地址:https://github.com/ABCDdouyae...] merge-descriptors (express源碼依賴) 一個對象的屬性繼承另一個對...
閱讀 2269·2019-08-30 15:56
閱讀 3107·2019-08-30 13:48
閱讀 1122·2019-08-30 10:52
閱讀 1490·2019-08-29 17:30
閱讀 416·2019-08-29 13:44
閱讀 3527·2019-08-29 12:53
閱讀 1112·2019-08-29 11:05
閱讀 2667·2019-08-26 13:24