node命令交互inquirer

用过vue或者react的用脚手架新建项目的应该都进行过命令交互,vue创建的时候会让你选择vue2还是vue3,也有多选要什么配置,也有输入y或者n选择是否用路由等,这其实用这个包都能实现 。
环境跟之前使用是一样的,初始化之后配置bin和npm link一下,这边就不再说了 。
安装:
npm
引入:
var= (‘’);
主要知道这几个类型类型,其他的有兴趣再去了解:
input,,list,,
方法用就行,另外两个和也可以自己去了解 。
我们按照顺序都展示出来,不管输入还是选择了什么,都继续下一种类型展示,代码:
typeInput();function typeInput() {inquirer.prompt([ {name: 'input',type: 'input',message: 'input: year, month and day',default: 'year'}]).then((res) => {console.log('Year: ' + res.input);typeConfirm();})}function typeConfirm(){inquirer.prompt([ {name: 'confirm',type: 'confirm',message: 'confirm',default: true}]).then((res) => {console.log('confirm: ' + res.confirm);typeList();})}function typeList(){inquirer.prompt([ {name: 'list',type: 'list',message: 'list',choices: ['red', 'blue', 'yellow'],default: 1}]).then((res) => {console.log('list: ' + res.list);typeCheckbox();})}function typeCheckbox(){inquirer.prompt([ {name: 'checkbox',type: 'checkbox',message: 'checkbox',choices: ['red', 'blue', 'yellow'],default: ['blue']}]).then((res) => {console.log('checkbox: ' + res.checkbox);typePassword();})}function typePassword(){inquirer.prompt([ {name: 'password',type: 'password',message: 'password',mask: false //是否出现*号}]).then((res) => {console.log('password: ' + res.password);})}

node命令交互inquirer

文章插图
方法返回的是,用的时候也可以配合async和await,返回的字段就是name字段:
【node命令交互inquirer】typeCheckbox();async function typeCheckbox() {let {checkbox} = await inquirer.prompt([{name: 'checkbox',type: 'checkbox',message:'checkbox',choices: ['red', 'blue', 'yellow'],default: ['blue']}]);console.log('checkbox ' + checkbox);}
效果:
和可以说是命令行交互最基本的两个包,这两个包的基本用法已经足够我们去开发一个cli的命令行交互操作 。