Inquirer.js 交互式命令行

Inquirer.js 交互式命令行

例子

const inquirer = require('inquirer')


// 設(shè)置問題
inquirer.prompt([
    
    {
        type: 'input' // 問題類型
        name: 'name' // 數(shù)據(jù)屬性名
        message: '名稱' // 提示信息
        default: 'Rogan' // 默認(rèn)值
    }
    
]).then( answers =>{
    // 處理結(jié)果
    console.log(`你的名字: `, answers.name)
    
} )

安裝

// npm
npm --save-dev inquirer

// yarn
yarn -d inquirer

基本概念

  • quesitons // 交互提問, 設(shè)置需要交互的內(nèi)容铝穷,例如 輸入, 選擇等
  • answers // 處理回答佳魔,設(shè)置處理函數(shù)

QUESITONS 提問配置

  • type 問題類型
  • name 數(shù)據(jù)屬性
  • message 提示信息
  • default 默認(rèn)值
  • choices 選項(xiàng)列表
  • validate 校驗(yàn)函數(shù)
  • filter 多慮器
  • transformer 轉(zhuǎn)換器

問題類型

  • input 輸入

    inquirer.prompt([
        {
            type: 'input',
            name: 'address',
            message: '地址',
        }  
    ])
    
  • number 數(shù)字

    {
        type: 'number',
        name: 'phone',
        message: '手機(jī)號(hào)'
    }
    
  • confirm 是否選擇 (y/n)

    {
      type: 'confirm',
        name: 'out',
        message: '是否退出'
    }
    
    // y: 返回 true, n: 返回 false
    
  • list 選擇列表

    {
        type: 'list',
        name: 'phone',
        message: '選擇手機(jī)品牌',
            choices: [
                { name: '小米', value: 'mi' },
                { name: '華為', value: 'huawei' },
                { name: '蘋果', value: 'apple' }
            ]
    }
    
  • rawlist 帶編號(hào)的選擇列表

    {
        type: 'rawlist',
        name: 'num',
        message: '編號(hào)',
        choices: [
            { name: '1', value: 1 },
            { name: '2', value: 2 }
        ],
        default: 0 // 默認(rèn)值為列表項(xiàng)編號(hào)曙聂,起始為 0
        
    }
    
  • expand 帶縮寫選擇列表

    {
        type: 'expand',
        name: 'lang',
        message: "語(yǔ)言",
        choices: [
          { key: 'j', name: 'javascript', value: 1 },
            { key: 'h', name: 'html', value: 2 }
        ]
    }
    
  • checkbox 多選

      {
            type: 'checkbox',
            name: 'lang',
            message: '語(yǔ)言',
            choices: [
    
                { name: 'javascript', value: 1 },
                { name: 'php', value: 2 },
                { name: 'go', value: 3 },
                
            ],
        }
    
  • password 密碼

    {
        type: 'password',
        name: 'pw',
        message: '密碼',
    }
    
  • editor 文本編輯器

    {
        type: 'editor',
        name: 'content',
        message: '內(nèi)容'
    }
    

多步驟嵌套

const conf = [


    [

        {
            type: 'list',
            name: 'data',
            message: '選擇語(yǔ)言',
            choices: [
    
               
                {
                    name: 'javascript', value: 1
                },
                {
                    name: 'go', value: 2
                },
                
                
            ]
        }
        
    ],

    [

        {
            type: 'list',
            name: 'data',
            message: '工作類型',
            choices: [
                {
                    name: 'web', value: 3,
                },
                {
                    name: 'node', value: 3
                }
            ]
        }
        
    ],
    [
        {
            type: 'list',
            name: 'data',
            message: '工作類型',
            choices: [
                {
                    name: 'docker',  value: 3
                },
                {
                    name: 'block chian', value: 3
                }
            ] 
        }
    ],
    [
        {
            type: 'number',
            name: 'data',
            message: '期望薪資',
        }
    ]
    
]


let step = 0;

function select({data}){

    if(step < 3){
        step++
        return inquirer.prompt(conf[data]).then(select)
    }else{
        console.log('end: ',  data)
    }
    
}

select({ data: step })

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鞠鲜,隨后出現(xiàn)的幾起案子宁脊,更是在濱河造成了極大的恐慌,老刑警劉巖贤姆,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件榆苞,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡霞捡,警方通過查閱死者的電腦和手機(jī)坐漏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碧信,“玉大人赊琳,你說我怎么就攤上這事∨椴辏” “怎么了躏筏?”我有些...
    開封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)呈枉。 經(jīng)常有香客問我趁尼,道長(zhǎng)埃碱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任酥泞,我火速辦了婚禮砚殿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘婶博。我一直安慰自己瓮具,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開白布凡人。 她就那樣靜靜地躺著名党,像睡著了一般。 火紅的嫁衣襯著肌膚如雪挠轴。 梳的紋絲不亂的頭發(fā)上传睹,一...
    開封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音岸晦,去河邊找鬼欧啤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛启上,可吹牛的內(nèi)容都是我干的邢隧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼冈在,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼倒慧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起包券,我...
    開封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤纫谅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后溅固,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體付秕,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年侍郭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了询吴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡亮元,死狀恐怖汰寓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情苹粟,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布跃闹,位于F島的核電站嵌削,受9級(jí)特大地震影響毛好,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜苛秕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一肌访、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧艇劫,春花似錦吼驶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至顷蟀,卻和暖如春酒请,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鸣个。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工羞反, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人囤萤。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓昼窗,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親涛舍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子澄惊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Inquirer.js試圖為NodeJs做一個(gè)可嵌入式的美觀的命令行界面。如下圖: 提供錯(cuò)誤回調(diào) 詢問操作者問題 ...
    SherHoooo閱讀 19,263評(píng)論 2 8
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,401評(píng)論 0 5
  • Lua 5.1 參考手冊(cè) by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,831評(píng)論 0 38
  • 像一些前端的腳手架做盅,比如 vue-cli 一樣缤削,直接在命令行輸入一段命令就可以生成一個(gè)項(xiàng)目。這是怎么做到的呢吹榴? y...
    魚仔1234閱讀 2,472評(píng)論 0 12
  • 昨天下午歸家亭敢,媽媽將將掃好了灶間,這是過年前的除塵了图筹。以前廂屋是瓦房時(shí)帅刀,老人拿竹枝扎在竹竿頭,當(dāng)撣子用远剩,清羅羅網(wǎng)最...
    江海凝閱讀 532評(píng)論 0 0