开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第9天,点击查看活动详情
inquire
inquire介绍
inquire是nodejs常见命令交互界面。
简单的介绍呢,就比如我们在初始化一个vue项目时,使用vue-cli脚手架的命令vue create app。输入命令回车之后。会弹出一些提示。让我们来选择vue版本。选择项目中搭配的一些vue-router、ts、eslint等等。这个命令交互的过程。就可以使用inquirer来实现。
接下来,我们通过本地的小项目来试用一下。
inquire本地试用
环境准备
初始一个npm项目 使用命令 npm init -y初始化开发环境。
在package.json中添加bin命令。
"bin": {
"inquirer-test": "./index.js"
}
在项目根目录下面创建index.js文件
index.js内部头部添加执行命令。加入一行console的测试代码
#! /usr/bin/env node
console.log('123')
之前没有开发过脚手架的同学一定会好奇。这个#! /usr/bin/env node放在头部的作用。他其实就是指定当前的文件通过node来执行。和单独通过命令node index.js的效果是一样的。
运行 npm link 创建软连接 运行 inquirer-test 这个时候可以看到命令行模块输出了我们的测试代码123
安装inquirer
再使用 npm i inquirer 安装inquirer依赖
注意安装版本,如果你本地搭建好了能支持ES模块化。就可以直接安装。如果没有配置ES模块化支持工具。那你就要像我一样,安装8版本。这个版本是支持require引入的。
npm i inquirer@8.2.5
删除刚才的console测试代码。把inquire引入,并打印,观察数据结构。
const inquirer = require('inquirer')
console.log(inquirer)
在js中输入如下的内容。通过iinquirer的prompt方法。来发起一个询问。
inquirer
.prompt([
{
type: 'input',
name: 'question',
message: 'Please input the text',
},
])
.then((answers) => {
console.log(answers, 'answers')
})
再次在命令行输入 inquirer-test
随便输入点啥,回车。在用户交互模板就能看到我们打印出来的answers。answers对象中的question就是我们刚才在命令行输入的。
除了输入功能。还有选择功能。
初步了解inquirer的功能之后。就可以自己开发一些项目中的小功能。
inquirer的使用场景
比如我在做一个项目的时候。iconfont下载下来的样式都要改成自己的样式名、比如icon-font-arrow。需要改成xx-font-arrow。如果手动替换。可能会导致出错。或者新人进来,不知道具体手动替换的规则。那么就可能会是项目出错。
针对上面的这种情况。就可以尝试自己来写一个小小的功能插件。每次通过输入iconfont的动态连接。去通过程序处理iconfont文件,再放置在需要放置的目录下面。
这是我之前写的一个动态生成的定制iconfont的是实现。有需要的可以去参考一下。其中就使用到inquirer插件。dynamic-iconfont