2016年4月10日 星期日

找到了個不錯的command line輔助工具~inquirer

inquirer是一套讓您可以製作互動指令的工具,透過inquirer可以達到像是node interpreter的功能。一般在做互動式安裝系統時,需要多次設定參數與環境,或選擇不同的安裝項目時,非常有用ㄛ。

Github repository

Installation

npm install inquirer

Sample Usae

怎麼使用inquirer呢?最簡單就是來個echo的程式,也就是執行後,你打什麼,他就回覆什麼 :D
File: echo.js
#!/usr/bin/env node
var inquirer = require('inquirer');

function it() {
  inquirer.prompt([{
    type: 'input',
    name: 'cmd',
    message: ' →',
  }]).then(function (a) {
    if(a.cmd == 'exit') process.exit(0);
    console.log(a.cmd);
    it();
  });
}

it();
執行狀況:
$ node examples/inquirer/echo.js
?  → hello
hello
?  → Hello Simon!
Hello Simon!
?  → exit
上面的程式中,prompt的輸入參數為需要帶入互動模式的指令,可以指定input, confirm, list...等方法,也可以帶入一些判斷讓指令模式更加聰明。
在then的callback中,所帶入的數值會以input裡面的name為名稱附加在input參數"a"中,例如上方input的name為cmd,則下方then callback的"a"所接收到的參數會帶入在a中...
a = { "cmd":"your-input-text" }
透過callback再呼叫原函式,則可以持續會到interactive模式,只有接收到'exit'時候會直接離開程式。

Reference