inquirer
基础使用
安装
npm i inquirer && npm i -D @types/inquirer
基本类型
类型 | 说明 |
---|---|
confirm | 确认/取消 |
list | |
checkbox | |
password | |
editor | |
rawlist | 单选列表 |
input | 用户输入 |
number | 用户输入(数字限定) |
常用示例
确认/取消 问答框
const Confirm = async (msg, d=false) {
const { res } = await inquirer.prompt([
{
name: "res",
type: "confirm",
message: msg,
default:d,
},
]);
if(res){
.../
}else{
.../
}
}
let msg = chalk.yellow.bold(`目标目录./${basename}/已存在,是否覆盖?`)
Confirm(msg, d=true)
带定时的问答框
const inquirer = require('inquirer');
const prompts = [
// ... 其他 prompts
{
type: 'list',
name: 'choice',
message: 'Please choose an option:',
choices: ['Option A', 'Option B', 'Option C'],
default: 'Option B' // 默认选项
}
];
let timerId;
function autoSelectDefault(defaultValue) {
// 清除定时器
clearTimeout(timerId);
// 这里只是模拟自动选择,实际上你需要将选择的值传递给 inquirer 或其他地方
console.log(`Automatically selected: ${defaultValue}`);
// 你可以在这里调用 inquirer.prompt 的回调函数或执行其他逻辑
}
inquirer.prompt(prompts).then(answers => {
// 用户做出了选择,处理 answers
}).catch(error => {
// 处理错误
}).finally(() => {
// 设置定时器,例如 10 秒后自动选择默认选项
timerId = setTimeout(() => {
autoSelectDefault(prompts[0].default); // 假设第一个 prompt 是需要自动选择的
}, 10000);
});