当前位置:网站首页 > Vue.js开发 > 正文

inquirer:命令行中与用户进行交互的js库

一,概述

在写前端项目的脚手架之类的配置时,需要在命令行中进行交互,以获取用户的配置。这时就可以使用这个js库。

二,基本用法

1,使用的语法结构

const inquirer = require('inquirer'); const promptList = [ // 具体交互内容,每一个对象里都是一次交互 { 
    ... }, { 
    ... } ]; inquirer.prompt(promptList).then(answers => { 
    console.log(answers); // 返回的结果是一个promise对象,交互的结果就存储在这里 }) 

2,参数概述

type:表示提问的类型,包括:input, confirm, list, rawlist, expand, checkbox, password, editor; name: 存储当前问题回答的变量; message:问题的描述; default:默认值; choices:列表选项,在某些type下可用,并且包含一个分隔符(separator); validate:对用户的回答进行校验; filter:对用户的回答进行过滤处理,返回处理后的值; transformer:对用户回答的显示效果进行处理(如:修改回答的字体或背景颜色),但不会影响最终的答案的内容; when:根据前面问题的回答,判断当前问题是否需要被回答; pageSize:修改某些type类型下的渲染行数; prefix:修改message默认前缀; suffix:修改message默认后缀。 

三,对应常用的类别

1,input

const promptList = [ { 
    type: 'input',// input类型带测试 message: '设置一个用户名:', name: 'name', default: "test_user" }, { 
    type: 'input',//input类型带校验 message: '请输入手机号:', name: 'phone', validate: function(val) { 
    if(val.match(/\d{ 
   11}/g)) { 
    // 校验位数 return true; } return "请输入11位数字"; } } ]; 

效果:
在这里插入图片描述

2,rawList

{ 
    type: 'rawlist',//rawlist类型 message: '请选择一种水果:', name: 'fruit', choices: [ "Apple", "Pear", "Banana" ] }, 

在这里插入图片描述

3,list

{ 
    type: 'list',//list类型 name: 'env', message: '请选择你要部署的环境?', choices: ['生产环境', '准生产环境', '测试环境'] }, 

在这里插入图片描述

4,checkoutBox

{ 
    type: "checkbox", message: "选择颜色:", name: "color", choices: [ { 
    name: "red" }, new inquirer.Separator(), // 添加分隔符 { 
    name: "blur", checked: true // 默认选中 }, { 
    name: "green" }, new inquirer.Separator("--- 分隔符 ---"), // 自定义分隔符 { 
    name: "yellow" } ] } 

在这里插入图片描述

5,comfirm

{ 
    type: "confirm", message: "是否使用监听?", name: "watch", default:true },{ 
    type: "confirm", message: "是否进行文件过滤?", name: "filter", when: function(answers) { 
    // 当watch为true的时候才会提问当前问题 return answers.watch } } 

在这里插入图片描述

四,完整的代码

const inquirer = require('inquirer'); const promptList = [ { 
    type: 'input',// input类型带测试 message: '设置一个用户名:', name: 'name', default: "test_user" }, { 
    type: 'input',//input类型带校验 message: '请输入手机号:', name: 'phone', validate: function(val) { 
    if(val.match(/\d{11}/g)) { 
    // 校验位数 return true; } return "请输入11位数字"; } }, { 
    type: 'rawlist',//rawlist类型 message: '请选择一种水果:', name: 'fruit', choices: [ "Apple", "Pear", "Banana" ] }, { 
    type: 'list',//list类型 name: 'env', message: '请选择你要部署的环境?', choices: ['生产环境', '准生产环境', '测试环境'] }, { 
    type: "checkbox", message: "选择颜色:", name: "color", choices: [ { 
    name: "red" }, new inquirer.Separator(), // 添加分隔符 { 
    name: "blur", checked: true // 默认选中 }, { 
    name: "green" }, new inquirer.Separator("--- 分隔符 ---"), // 自定义分隔符 { 
    name: "yellow" } ] } ]; const nextPromptList=[ { 
    type: "confirm", message: "是否使用监听?", name: "watch", default:true },{ 
    type: "confirm", message: "是否进行文件过滤?", name: "filter", when: function(answers) { 
    // 当watch为true的时候才会提问当前问题 return answers.watch } } ] async function test(){ 
    const res=await inquirer.prompt(promptList)//参数是一个数组,数组中每个对象就是一次交互 console.log("----",res) const res2 = await inquirer.prompt(nextPromptList); console.log("++++",res2) } test() 
到此这篇inquirer:命令行中与用户进行交互的js库的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • vue2项目中全局引入scss变量2024-12-02 22:00:10
  • js正则表达式--个人常用2024-12-02 22:00:10
  • webpack5+vue3搭建h5项目模板-(一)-基础配置2024-12-02 22:00:10
  • webpack5+vue3搭建h5项目模板-(二)-eslint代码规范化2024-12-02 22:00:10
  • vue3的自定义指令2024-12-02 22:00:10
  • vue2使用脚手架配置prettier报错:‘prettier/prettier‘: context.getPhysicalFilename is not a function2024-12-02 22:00:10
  • webpack5学习与实战-(六)-babel-loader解析js文件2024-12-02 22:00:10
  • js中的同步与异步的理解2024-12-02 22:00:10
  • vue中动画效果的实现2024-12-02 22:00:10
  • vue3开启eslint之后报错:error Parsing error: ‘>‘ expected2024-12-02 22:00:10
  • 全屏图片