首页 > 前端技术 > [转]前端Node命令行交互工具——inquirer使用详解
2022
11-28

[转]前端Node命令行交互工具——inquirer使用详解

【转载于】https://www.bilibili.com/read/cv4964252/

命令行交互工具Inquirer

它有几个特点:

提供错误反馈

询问问题

解析输入

验证答案

管理分层提示

安装
npm install inquirer

使用格式
var inquirer = require(‘inquirer’);

//inquirer.prompt(questions) -> promise
inquirer.prompt([参数]).then(answers => {
// 你的逻辑
});

采用promise方式处理回调,参数是一个数组,数组的元素是对象(按照规范定义即可)

看一个简单的示例:

图1
我们运行一下,结果如下:

图2
这个示例可以看到当前是个确认型的会话、默认值是false(也就是不输入任何值直接回车时)。

输入的参数
下面我们来具体看下question对象内都有哪些key、这些key的具体含义有哪些?

1、type(String) :会话的类型、默认是input、当然还支持以下这些:

(1)input(用户输入型)

图3
(2)confirm(确认会话型)

图4
(3)list(无序列表型)

图5
(4)rawlist(有序列表型)

图6
(5)expand(扩展列表)

图7
(6)checkbox(勾选型)

图8
(7)password(输入密码型)

图9
(8)editor(编辑型)回车开启你的编辑器进行编辑答案

图10
2、name(String) : 当存储答案时,name作为答案的key值 一一映射

图11
3、message(String|Function):问题的题目描述,当message是function类型时,第一个参数是前面所有问题会话的答案(key/value展示)

图12
4、default(String|Number|Array|Function) :答案的默认值,也就是不输入任何值直接回车时的默认值,当default是function类型时,第一个参数是前面所有问题会话的答案(key/value展示)

5、choices(Array|Function): 当choices是function类型时,第一个参数是前面所有问题会话的答案(key/value展示),返回一个数组,数组內的可以是简单的string也可以是object,还可以是separator

图13
6、validate(Function) :校验用户输入参数的方法,回调函数內传递两个参数,第一个是用户输入的参数,第二个是之前所有会话的答案,校验通过返回true,未通过返回错误提示。

图14
7、filter(Function) :对用户输入的答案,经过处理后返回

图15
8、when: (Function, Boolean):当满足函数内的条件时,当前问题才能出现,返回值是Boolean值,函数的参数是之前所有会话的答案

图16
9、pageSize:(Number):可视区域內选项的个数,适用于type为list、rawList、expand or checkbox,通过键盘上下尖头来查看更多选项。

图17
运行一下,结果如下:

图18
10、prefix:添加message前缀信息

11、suffix:添加message后缀信息

图19
运行一下,结果如下:

图20
分隔符
new inquirer.Separator() 分隔符可以加在choices 的数组中

看一个例子:

图21
运行一下:

图22
底部的文案输出
var ui = new inquirer.ui.BottomBar();
//简单的输出信息:
ui.log.write(‘something just happened.’);
//可以使信息固定屏幕最后输出
ui.updateBottomBar(‘new bottom bar content’);

看一下例子:

图23
运行结果如下:

图24
监听回答
inquirer.prompt(prompts).ui.process.subscribe(
onEachAnswer,
onError,
onComplete
);

总结
inquirer也是一个开发命令行的神器,配合上之前的commander等工具基本上可以覆盖大部分场景!如果之前注意过,你会发现机会所有的好的命令行工具都有它们的身影,比如vue的命令行工具!inquirer相对commander来说比较简单,所以本文主要以示例展示为主,没有太多需要理解的地方。如果你看到了这里,说明你差不多已经学会了,那就赶紧去写一个吧,让你的领导和同事对你刮目相看! 作者:做前端的蜗牛 https://www.bilibili.com/read/cv4964252/ 出处:bilibili

最后编辑:
作者:管理员
这个作者貌似有点懒,什么都没有留下。