嘿,会Node.js 的小伙伴们!今天咱们来聊聊一个超级实用的 Node.js 库——inquirer.js。如果你想要让你的命令行工具变得交互式,那这个库绝对是你的不二之选。它能让你轻松创建出美观、易用的文本界面,让用户的输入体验更上一层楼。
安装 Inquirer.js
安装起来也是分分钟的事,用 npm 或 yarn 都可以:
或者
快速上手
安装完了,咱们就可以开始玩耍了。先来个简单的示例,看看 inquirer.js 是怎么用的:
这段代码里,咱们定义了两个问题:用户名和密码。type 参数告诉 inquirer.js 我们想要的输入类型,name 是问题的答案名称,message 是咱们要问用户的问题。
丰富的问题类型
inquirer.js 提供了一大堆问题类型,满足各种不同的需求:
输入(Input)
就是普通的文本输入。
密码(Password)
和输入一样,但输入的内容不会显示出来。
确认(Confirm)
用户可以通过输入 y 或 n 来回答“是”或“否”。
列表(List)
让用户从列表里挑一个。
下拉列表(Expand)
下拉列表,用户可以用方向键选择多个选项。
编辑器(Editor)
这个厉害了,让用户在外部编辑器里写东西。
处理用户的回答
inquirer.prompt() 方法返回一个 Promise,用户一提交答案,Promise 就会带着所有答案的对象来解析。你可以拿这些答案去做各种酷炫的事。
动态提问
有时候,你可能想问的问题取决于用户之前的回答。inquirer.js 支持这种智能模式,用 when 属性就能搞定。
在这个例子里,用户名的输入框会不会显示,取决于用户对 hasAccount 的回答。
装饰你的命令行
inquirer.js 还让你能通过 prefix 属性来加个前缀,或者用 transformer 函数来美化显示给用户的答案。
和其他 Node.js 工具一起玩
inquirer.js 可以和其他 Node.js 工具一起用,比如和 cross-spawn 模块搭配,根据用户的回答执行不同的命令。
总结
inquirer.js 是一个功能超群的库,能让你的命令行工具变得既强大又用户友好。无论是简单的数据收集,还是复杂的多步骤交互,inquirer.js 都能帮你搞定。今天咱们学了 inquirer.js 的基本用法,现在你应该对这个库有个大概的了解了。