开始通过<代码> npm init 代码>创建<代码> package.json> 代码的时候就有大量与用户的交互(当然也可以通过参数来忽略输入);而现在大多数工程都是通过脚手架来创建的,使用脚手架的时候最明显的就是与命令行的交互,如果想自己做一个脚手架或者在某些时候要与用户进行交互,这个时候就不得不提到<代码> inquirer.js> 代码了。
由于交互的问题种类不同,调查者为每个问题提供很多参数:
-
<李>类型:表示提问的类型,包括:输入,确认名单,rawlist,扩张,复选框,密码,编辑器;李>
<李>名称:存储当前问题回答的变量;李>
<李>信息:问题的描述;李>
<李>默认值:默认值;李>
<李>选择:列表选项,在某些类型下可用,并且包含一个分隔符(分离器);李>
<李>验证:对用户的回答进行校验;李>
<李>过滤器:对用户的回答进行过滤处理,返回处理后的值;李>
<李>变压器:对用户回答的显示效果进行处理(如:修改回答的字体或背景颜色),但不会影响最终的答案的内容,李>
<李>当:根据前面问题的回答,判断当前问题是否需要被回答;李>
<李>页大小:修改某些类型类型下的渲染行数;李>
<李>前缀:修改消息默认前缀;李>
<李>后缀:修改消息默认后缀。
李>
上面的属性(除<代码> 代码>变压器外)在下面都有对应使用。
引用>
<强> 0。语法结构强>
const询问者=要求(“调查者”); const promptList=[//具体交互内容 ]; inquirer.prompt (promptList)。(答案=比;{ console.log(答案);//返回的结果 })<强> 1。输入强>
const promptList=[{ 类型:“输入”, 消息:“设置一个用户名:”, 名称:“名字”, 默认值:“test_user”//默认值 },{ 类型:“输入”, 消息:“请输入手机号:”, 名称:“电话”, 验证:函数(val) { 如果(val.match (\ d {11}/g)){//校验位数 返回val; } 返回“请输入11位数字”; } });效果:
![]()
<强> 2。确认强>
const promptList=[{ 类型:“确认”, 信息:“是否使用监听?”, 名称:“看”, 前缀:“前缀” },{ 类型:“确认”, 信息:“是否进行文件过滤吗?”, 名称:“过滤器”, 后缀:“后缀”, 当:函数(答案){//当手表为真实的时候才会提问当前问题 返回answers.watch } });效果:
![]()
<强> 3。列表强>
const promptList=[{ 类型:“列表”, 消息:“请选择一种水果:”, 名称:“水果”, 选择:[ “苹果”, “梨”, “香蕉” ], 过滤器:函数(val){//使用过滤器将回答变为小写 返回val.toLowerCase (); } });效果:
![]()
<强> 4。rawlist 强>
const promptList=[{ 类型:“rawlist”, 消息:“请选择一种水果:”, 名称:“水果”, 选择:[ “苹果”, “梨”, “香蕉” ] });效果:
![]()
<强> 5。扩大强>
inquirer.js一个用户与命令行交互的工具详解