youngwind / blog

梁少峰的个人博客
4.66k stars 385 forks source link

终端交互——inquire.js #41

Open youngwind opened 8 years ago

youngwind commented 8 years ago

起因

前些日子在用yeoman自定义自己的脚手架的时候忽然对终端交互产生了兴趣。 这些下拉框,单选框,复选框到底是怎么做的呢?

2016-03-12 5 16 13

后来了解到yeoman用的是inquirer.js

使用方法

1. 安装

npm install inquirer

2. 使用

var inquirer = require("inquirer");
var validator = require("validator");  // 我使用了validator校验手机号

var questions = [

 //是否类型
  {
    type: "confirm",
    name: "sex",
    message: "Are you male?",
    default: false
  },
// 输入类型,添加校验
  {
    type: "input",
    name: "phone",
    message: "What's your phone number",
    validate: function (value) {
      return validator.isMobilePhone(value, 'zh-CN') ? true : "Please enter a valid phone number";
    }
  },

  //select下拉选项
  {
    type: "list",
    name: "weight",
    message: "How much is your weight",
    choices: ["Large", "Middle", "Small"],
    filter: function (value) {
      return value.toLowerCase();
    }
  },
];

inquirer.prompt(questions, function (answers) {
  console.log(answers);
});

3. 结果

2016-03-12 10 10 35