摘要:地址好用的交互命令行工具方法啟動(dòng)提示界面并返回請(qǐng)輸入您的名字您的名字是請(qǐng)輸入您的名字小明您的名字是小明在下面注冊(cè)提示插件提問的問題對(duì)象屬性提示的類型,默認(rèn)為,也可以設(shè)置為接受答案的,當(dāng)問題被回答,答案會(huì)以對(duì)象形式返回用于設(shè)置提問的問題如
[github地址:https://github.com/ABCDdouyae...]
inquirer好用的交互命令行工具方法
const req = require("inquirer"); req.prompt([{ type: "string", message:"請(qǐng)輸入您的名字", name: "name" }]).then(as=>{ console.log("您的名字是:"+as.name) }).catch(err=>{console.log(err)}) /** ? 請(qǐng)輸入您的名字 小明 您的名字是:小明 */
type:提示的類型(String),默認(rèn)為input,也可以設(shè)置為input, confirm, list, rawlist, expand, checkbox, password, editor;
name:接受答案的key(String),當(dāng)問題被回答,答案會(huì)以對(duì)象形式返回;
message:用于設(shè)置提問的問題(String|Function),如果設(shè)置為function,該function的第一個(gè)參數(shù)為近期回答的答案構(gòu)成的對(duì)象;
req.prompt([{ type:"input", message:"請(qǐng)輸入你的名字?", name:"name", }, { type:"input", message: function(e){ return `${e.name},請(qǐng)輸入您的年齡?` }, name: "age" }]).then(as=>{ console.log(as) }) /** ? 請(qǐng)輸入你的名字? 小明 ? 小明,請(qǐng)輸入您的年齡? 12 { name: "小明", age: "12" } */
default:如果用戶沒有回答,默認(rèn)值存在則為該問題賦值默認(rèn)答案(String|Number|Boolean|Array|Function),如果設(shè)置為function,該function的第一個(gè)參數(shù)為近期回答的答案構(gòu)成的對(duì)象;
choices:用于設(shè)置選擇的列表(Array|Function),如果設(shè)置為function,該function的第一個(gè)參數(shù)為近期回答的答案構(gòu)成的對(duì)象;
req.prompt([{ type: "list", message:"請(qǐng)選擇性別", name: "name", choices: ["男", "女"] }]).then(as=>{ console.log(as) }).catch(err=>{console.log(err)}) /** ? 請(qǐng)選擇性別 女 { name: "女" } */
validate:用來校驗(yàn)輸入的答案是否符合要求(Function),該function的第一個(gè)參數(shù)為近期回答的答案,通過返回boolean來判斷是否校驗(yàn)通過,如果未通過則重新進(jìn)入輸入界面;
req.prompt([{ type: "input", message:"請(qǐng)輸入您的電話號(hào)碼?", name: "mobile", validate:function(e){ if(e.match(/^[1][2,3,5,6,7,8][0-9]{9}$/)){return true} console.log(" 您輸入的電話號(hào)碼格式不對(duì),請(qǐng)重新輸入") return false; } }]).then(as=>{ console.log(as) }).catch(err=>{console.log(err)}) /** ? 請(qǐng)輸入您的電話號(hào)碼? 110 您輸入的電話號(hào)碼格式不對(duì),請(qǐng)重新輸入 ? 請(qǐng)輸入您的電話號(hào)碼? 16619928930 { mobile: "16619928930" } */
filter:對(duì)輸入的答案進(jìn)行處理后返回新的答案(Function),該function的第一個(gè)參數(shù)為近期回答的答案
req.prompt([{ type: "checkbox", message:"請(qǐng)選擇性別?", 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:對(duì)用戶的問題進(jìn)行轉(zhuǎn)換(?。。?!我沒看懂這個(gè)是干嘛的,有看懂的求指教)(Function)
when:用來設(shè)定這個(gè)問題是否有必要被提問(Function),返回boolean,返回false表示忽略這個(gè)問題,該function的第一個(gè)參數(shù)為近期回答的答案
req.prompt([{ type: "list", message:"請(qǐng)問你結(jié)婚了嗎?", name: "isMarry", choices:["結(jié)婚", "未結(jié)婚"], },{ type: "input", message:"請(qǐng)問你孩子多大了?", name: "age", when:function(e){ return e.isMarry === "結(jié)婚" } }]).then(as=>{ console.log(as) }).catch(err=>{console.log(err)}) /** ? 請(qǐng)問你結(jié)婚了嗎? 未結(jié)婚 { isMarry: "未結(jié)婚" } */
pageSize:設(shè)置選擇列表每頁(yè)顯示的可選項(xiàng)數(shù)目(Number)
prefix:給問題前面添加內(nèi)容(String)
req.prompt([{ type: "string", message:"請(qǐng)輸入您的名字", name: "name", prefix:"您好" }]).then(as=>{ console.log("您的名字是:"+as.name) }).catch(err=>{console.log(err)}) /** 您好 請(qǐng)輸入您的名字 ww 您的名字是:ww */
suffix:給問題后面添加內(nèi)容(String)
設(shè)置新的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:"請(qǐng)輸入您的名字", 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:"請(qǐng)輸入您的名字", name: "name", }); prompts.next({ type: "string", message:"請(qǐng)輸入您的性別", name: "sex", }); prompts.complete();
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/114366.html
摘要:地址好用的交互命令行工具方法啟動(dòng)提示界面并返回請(qǐng)輸入您的名字您的名字是請(qǐng)輸入您的名字小明您的名字是小明在下面注冊(cè)提示插件提問的問題對(duì)象屬性提示的類型,默認(rèn)為,也可以設(shè)置為接受答案的,當(dāng)問題被回答,答案會(huì)以對(duì)象形式返回用于設(shè)置提問的問題如 [github地址:https://github.com/ABCDdouyae...] inquirer 好用的交互命令行工具 方法 1.inquir...
摘要:地址好用的交互命令行工具方法啟動(dòng)提示界面并返回請(qǐng)輸入您的名字您的名字是請(qǐng)輸入您的名字小明您的名字是小明在下面注冊(cè)提示插件提問的問題對(duì)象屬性提示的類型,默認(rèn)為,也可以設(shè)置為接受答案的,當(dāng)問題被回答,答案會(huì)以對(duì)象形式返回用于設(shè)置提問的問題如 [github地址:https://github.com/ABCDdouyae...] inquirer 好用的交互命令行工具 方法 1.inquir...
摘要:?jiǎn)栴}如何執(zhí)行外部命令,如解決方案使用庫(kù)在之前,使用函數(shù)在及之后,使用函數(shù)討論命令的執(zhí)行默認(rèn)不需要環(huán)境,所以當(dāng)你使用作為參數(shù)時(shí),需要將置位,否則會(huì)報(bào)錯(cuò)誤通常來說對(duì)于執(zhí)行系統(tǒng)命令,我們會(huì)想到,但在官方文檔中已經(jīng)建議了使 問題 如何執(zhí)行外部命令,如ls -l 解決方案 使用subprocess庫(kù) 在Python 3.5之前,使用subprocess.call()函數(shù) >>> import s...
摘要:地址源碼依賴一個(gè)對(duì)象的屬性繼承另一個(gè)對(duì)象的屬性及其屬性描述符用法繼承者,被繼承者是否繼承者有該屬性的時(shí)候繼承默認(rèn)不繼承返回繼承后的新的對(duì)象當(dāng)?shù)谌齻€(gè)參數(shù)為時(shí)候,原對(duì)象又該屬性則沒有繼承被繼承者的屬性和屬性描述符 [github地址:https://github.com/ABCDdouyae...] merge-descriptors (express源碼依賴) 一個(gè)對(duì)象的屬性繼承另一個(gè)對(duì)...
摘要:地址源碼依賴一個(gè)對(duì)象的屬性繼承另一個(gè)對(duì)象的屬性及其屬性描述符用法繼承者,被繼承者是否繼承者有該屬性的時(shí)候繼承默認(rèn)不繼承返回繼承后的新的對(duì)象當(dāng)?shù)谌齻€(gè)參數(shù)為時(shí)候,原對(duì)象又該屬性則沒有繼承被繼承者的屬性和屬性描述符 [github地址:https://github.com/ABCDdouyae...] merge-descriptors (express源碼依賴) 一個(gè)對(duì)象的屬性繼承另一個(gè)對(duì)...
閱讀 2286·2019-08-30 15:56
閱讀 3120·2019-08-30 13:48
閱讀 1132·2019-08-30 10:52
閱讀 1505·2019-08-29 17:30
閱讀 430·2019-08-29 13:44
閱讀 3560·2019-08-29 12:53
閱讀 1127·2019-08-29 11:05
閱讀 2676·2019-08-26 13:24