# inquirer-extra **Repository Path**: zheng_yongtao/inquirer-extra ## Basic Information - **Project Name**: inquirer-extra - **Description**: 对inquirer库扩展,支持更多交互类型 - **Primary Language**: JavaScript - **License**: MIT-0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-16 - **Last Updated**: 2024-11-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## JInquirer 对[inquirer](//https://www.npmjs.com/package/inquirer#examples)插件进行二次封装,支持选择文件和文件夹。 ## 配置参数说明 ### inquirer原有参数 - type > 表示提问的类型,包括:input、confirm、 list、rawlist、expand、checkbox、password、editor。 - name > 存储当前输入的值。 - message > 问题的描述。 - default > 默认值。 - choices > 列表选项,在某些type下可用,并且包含一个分隔符(separator); - validate > 对用户的回答进行校验。 - filter > 对用户的回答进行过滤处理,返回处理后的值。 - when > 根据前面问题的回答,判断当前问题是否需要被回答。 - pageSize > 修改某些type类型下的渲染行数。 - prefix > 修改message默认前缀。 - suffix > 修改message默认后缀。 ### 新增参数 #### type > 在原有类型中新增两种类型:file、folder、expandList,分别为文件选择器和目录选择器及多级选择器。 #### pathType > 此项为新增配置,设置目录和文件选择器选中路径输出的格式,默认为相对路径,可以设置为**absolute**,此时会输出绝对路径。 #### rowNum > type为`expandList`时生效,设置当前选中对象每行显示的个数。 #### notNull > 设置该参数输入是否可以为空。 #### config - 1、checkboxTip > type为`expandList`时生效,列表为最后一级时显示提示语句。 - 2、listTip > type为`expandList`时生效,列表非最后一级时显示提示语句。 - 3、dirname > type为`file`或`folder`时,需要传入当前目录的路径作为初始化目录路径 ## 示例 ```shell npm install @jyeontu/j-inquirer ``` ```javascript const JInquirer = require('@jyeontu/j-inquirer'); let options = [ { type:"input", message:"请输入你的姓名:", name:"name", notNull:true },{ type:"input", message:"请输入你的年龄:", name:"age", default:18, validate:(val)=>{ if(val < 0 || val > 150){ return "请输入0~150之间的数字"; } return true; } },{ type:"file", message:"请选择文件:", name:"fileName", default:"", dirname:__dirname, },{ type:"folder", message:"请选择文件夹:", name:"folderName", default:"", dirname:__dirname, },{ type:"list", message:"请选择你喜欢的水果:", name:"fruit", default:"Apple", choices:[ "Apple", "pear", "Banana" ], },{ type:"expand", message:"请选择一个颜色:", name:"color", default:"red", choices:[ { key : 'R', value : "red" }, { key : 'B', value : "blue" }, { key : 'G', value : "green" } ] },{ type:"checkbox", message:"选择一至多种颜色:", name:"color2", choices:[ "red", "blue", "green", "pink", "orange" ] },{ type:"password", message:"请输入你的密码:", name:"pwd" },{ type:"editor", message:"写下你想写的东西:", name:"editor" },{ type: 'expandList', name: 'expandListChoose', message: 'your choice:', choices:{ 'aa': [ 'aaa1', 'aaa2', 'aaa3', 'aaa4' ], 'bb': [ 'bbb1', 'bbb2' ], 'cc': [ 'ccc1' ] } } ]; let j = new JInquirer(options); let res = j.prompt().then(res=>{ console.log(res); }); ```