Inquirer.js
一个使用界面进行交互的命令行集合
4.0以上的版本只支持node 6以上的,node4请使用3.x
目标和理念(hilosophy)
努力去做一个容易的 嵌入式的(embeddable) 和优美的命令行界面
应该简化一下的过程:
-提供一个错误回调
-询问
-解析(parsing )输入
-验证答案
-管理层次提示
导入(Installation)
npm install inquirer
var inquirer = require('inquirer');
inquirer
.prompt([
/* Pass your questions in here */
])
.then(answers => {
// Use user feedback for... whatever!!
});
案例位置
node packages/inquirer/examples/pizza.js
node packages/inquirer/examples/checkbox.js
# etc...
方法
inquirer.prompt(questions) -> promise
调出提示界面
-questions (数组类型)包含一个Question 对象
-返回一个promise
inquirer.registerPrompt(name, prompt)
使用name注册prompt
-name:prompt的名字
-prompt:prompt事件
inquirer.createPromptModule() -> prompt function
创建一个自包含的问答模块,当你复写或者添加一个新的问答模块时,你不希望影响其他模块,你也可以这么做
var prompt = inquirer.createPromptModule();
prompt(questions).then(/* ... */);
object
*Question*
一个question object是一个包含于问题有关系的hash
type(字符串):prompt的类型,默认是input,值列表:input, confirm, list, rawlist, expand, checkbox, password, editor
name(string):在下面答案对象中存储用户输入的答案的标志名
message(字符串|函数):输出的问题,如果是一个函数 第一个参数默认是用户输入的答案,默认值是name
default(String|Number|Boolean|Array|Function):如果用户没有输入任何值,这里存放默认值,或者是一个函数返回一个默认值,如果被定义为一个函数,第一个参数默认是用户的输入值
choices(Array|Function):一个数组 或者是一个返回数组的函数,如果被定义成函数 第一个参数是用户的输入值,数组可以是一个字符串数组,或者是一个字段数组,字典的属性有name、value、properties,
validate(Function):一个接受用户输入的方法,如果验证成功的话 应该返回true,如果失败的话,需要返回一个字符串,字符串是错误信息,如果你返回false的话 我们就会使用默认错误信息
filter(Function):一个将用户输入的进行过滤的方法
pageSize(Number):更改当使用list rawList expand 或者checkbox时候应该使用的行数
Answers
在每一个提示中包含答案的散列
-Key :question object的名称
-Value
Inquirer.js的更多相关文章
- 一统江湖的大前端(6)commander.js + inquirer.js——懒,才是第一生产力
<一统江湖的大前端>系列是自己的前端学习笔记,旨在介绍javascript在非网页开发领域的应用案例和发现各类好玩的js库,不定期更新.如果你对前端的理解还是写写页面绑绑事件,那你真的是有 ...
- js node.js 编写命令工具demo
1 创建文件夹cli-demo 2 执行npm init 3 创建cli.js 文件 内容如下: //js文件变成可执行文件 #!/usr/bin/env node console.log(&quo ...
- vue init定制团队模板之meta.js/meta.json写法入门
在上一篇文章中,我们提到了meta.js,这次我们详细了解一下meta.js里面各个模块的写法. 对于 meta.js/metajson 文件, 目前主要字段如下: prompts<Object ...
- 编写自定义Yeoman生成器
转载自JSCON-简时空:<自定义Yeoman生成器> 1.Getting Started 1.1.设置Node模块 Yeoman提供了generator-generator方便快速编写自 ...
- 创建简单的npm脚手架
前言 vue-cli, webpack-cli 等脚手架是不是用起来爱不释手?自己写了个模版每次来回复制粘贴代码是不是很难维护?如果你是对前端.Node操作有一定的了解,同时也存在以上疑问,那就请尽情 ...
- 前端工程化系列[06]-Yeoman脚手架核心机制
在前端工程化系列[05] Yeoman脚手架使用入门这边文章中,对Yeoman的使用做了简单的入门介绍,这篇文章我们将接着探讨Yeoman这个脚手架工具内部的核心机制,主要包括以下内容 ❏ Yeoma ...
- NPM 模块收集
cross-env https://www.npmjs.com/package/cross-env 在package.json设置环境变量的时候,会有兼容性问题,如: { "scripts& ...
- vue-cli简介(中文翻译)
vue-cli是一个简单的vuejs脚手架命令行工具. 安装 准备:Node.js(>=4.x,推荐6.x版本),npm版本3以上和Git. $npm install -g vue-cli 使用 ...
- node 利用命令行交互生成相应模板
目录 readline 实现 使用process实现 使用 inquirer 调用的生成模板方法 (generator 方法) 创建时间:2019-10-15 测试环境:win10 node-v10. ...
随机推荐
- laravel----------carbon时间类的使用介绍
echo Carbon::today(); // 对象 2018-04-17 00:00:00echo Carbon::tomorrow(); // 对象 2018-04-18 00:00 ...
- hadoop启动namenode日志报这个错,首先说怎么看日志
hadoop启动namenode日志报这个错,首先说怎么看日志, 启动namenode会有这个,ubuntu: starting namenode, logging to /home/xiaoye/h ...
- sql 生成随机字符串
生成三位随机字母+12位数字 ),), @c int; select @CardCode=abs(CHECKSUM(NEWID())) -LEN(@CardCode); ,@c)) set @Card ...
- IT题库-134 | String、StringBuffer和StringBuilder的区别
String是不可变的: StringBuffer是可变的,有默认长度的缓冲区,缓冲区一出时,则会自动增加: StringBuilder也是可变的,同上: StringBuffer是线程安全的(方法实 ...
- Delphi下MSMQ(Mircosoft Message Queue)实例(私有队列)
网上关于消息队列技术原理说明的详细文档很多,但涉及到Delphi的具体实现很少,这是我从网上找了一上午的资料,自己整合和尝试的能运行的程序. 打开控制面板->程序->添加组件,添加消息队列 ...
- 常见mysql的慢查询优化方式
一,第一步.开启mysql慢查询 方式一: 修改配置文件 在 my.ini 增加几行: 主要是慢查询的定义时间(超过2秒就是慢查询),以及慢查询log日志记录( slow_query_log) 方 ...
- 操作mongodb
MongoDB数据库是以k-v形式存储在磁盘上的. import pymongoclient = pymongo.MongoClient(host='10.29.3.40',port=27017)db ...
- Mysql查询创建和导入操作
如何安装: https://www.cnblogs.com/bigbrotherer/p/7241845.html 登录: mysql -uroot -p 输入密码:xxxx 显示当前数据库: sho ...
- 第十七节 Cookie基础与应用
什么是cookie:其实就是页面用来保存信息:比如,自动登录.记住用户名 cookie的特性:(以域名为单位的) 同一个网站(同一个域名)中所有页面共享一套cookie 数量.大小有限,跟浏览器有关, ...
- 【sed】增加一列【shell文本处理】
有些简单的文本处理不需要写程序,利用awk和sed就可以很好的完成. 今天记录一下在已有文件中增加一列的方法 sed -i "s/^/Chr${i}\t&/g" file ...