在使用npm init
的時候,你可以根據提示輸入信息,命令行會根據你輸入的信息做進一步的信息反饋,這就是一個命令行交互的過程。這一小節,我們將介紹第三方模塊co-prompt
,它能輕鬆實現命令行交互程序的開發。
安裝
co-prompt
模塊依賴於co
模塊,所以,兩個模塊我們都需要安裝。這裏只介紹本地安裝
Tips :
co
模塊是非常有名的異步程序處理模塊,這裏不展開,建議自行學習。
學習co
模塊之前,需要先了解一下ES6
的新特性Generator 函數
$ npm install co co-prompt --save
co-prompt的使用
引用
var co = require('co');
var prompt = require('co-prompt');
API
普通文本提示
- prompt(msg)
-
msg <String>
:提示用戶信息的具體內容
-
例子:
密碼文本提示,密碼非明文顯示
-
prompt.password(msg, [mask])
-
msg <String>
:提示用戶信息的具體內容 -
mask <String>
:輸入密碼時的顯示替換字符,默認是"*"
-
多行文本提示
- prompt.multiline(msg)
-
msg <String>
:提示用戶信息的具體內容
-
確認提示信息
- prompt.confirm(msg)
-
msg <String>
:提示用戶信息的具體內容 -
返回值 <Bool>
:true|false
-
Tips:
confirm()
方法只有在用戶輸入[y|yes|ok|true]
這4個值(不區分大小寫)時,才返回true
,其他情況都是false
,所以,你的確認提示信息必須引導用戶輸入合適的值或者你程序的業務邏輯需要做必要調整
綜合例子
var co = require('co');
var prompt = require('co-prompt');
co(function*() {
var username = yield prompt('username: ');
var pwd = yield prompt.password('password: ');
var desc = yield prompt.multiline('description:');
var ok = yield prompt.confirm('are you sure?(yes|no)');
console.log('hello %s %s\n', username, pwd);
console.log('you describe yourself as:\n' + desc);
console.log('answer: %s', ok);
process.exit();
});
co和co-prompt API地址:
co 官網地址:https://www.npmjs.com/package/co
co-prompt 官網地址:https://www.npmjs.com/package/co-prompt