inquirer-extra
v1.0.0
Published
基于inquirer控制台交互的二次封装
Downloads
58
Maintainers
Readme
JInquirer
对inquirer插件进行二次封装,支持选择文件和文件夹。
配置参数说明
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
时,需要传入当前目录的路径作为初始化目录路径
示例
npm install @jyeontu/j-inquirer
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);
});