这是我参与2022首次更文挑战的第10天,活动详情查看:2022首次更文挑战
前言
临近过年福临门。工作顺利迎新春。2021即将真正的过去,2022新春到来,项目跑的顺利,所以上班也就多了些时间,开始搞了一下cli开发
,毕竟在工作来讲,还是用得上的。
对我而言,学习一门新知识的开发,好像最麻烦的一点就是只到它能用来做什么,或者说在实战中,应该在什么情况下去用,否则学习起来如同无头苍蝇。
尤其是一门独立的知识,但是需要和其他的知识有机的结合起来。
cli开发就是,其本身,完全单独的拿出来能做什么我不知道,做一个和用户的中端交互?那不是我想要的。
所以先说CLI开发能干嘛?
经过和朋友的一顿友好交流,互相问候之后,有了以下结论。
1、在vue开发中,创建一个页面的同时需要插入路由,通过cli可以写一个终端交互,自动的插入对应的路由。
2、管理项目中引入的自定义工具函数,如minxin.js,utils.js等,当不需要的时候,自动遍历项目删除引用。
3、全局变量,作用如上。
4、待定。
当然,cli开发
能做的事远不止如此,只是对我主要以前端开发的工作来是,这些是最主要的用途了。
主要的几个库
commander
点此查看commander
这个包就是一个用于执行终端命令的包,可以通过配置自定义命令来添加自己项目中可能会用到的配置。
const program = require('commander')
program
.command('create <name>')
.description('create some file')
.option('-s, --set <path> <value>', 'set value')
.action((value, options) => {
console.log(value, options)
})
如上示例,command
配置一个命令, option
配置这个命令可以携带的参数,description
是命令的描述,option
是对参数的描述。
inquirer
inquirer
则是一个在终端与用户发起交互的包,在终端创建过vue,react等项目的小伙伴应该很熟悉,或者执行npm init
命令式也见过,让你输入或选择配置,最终生成你需要的包。
const inquirer = require('inquirer')
inquirer.prompt([
{
name: 'action',
type: 'list',
message: 'Target directory already exists Pick an action:',
choices: [
{
name: 'Overwrite',
value: 'overwrite'
},{
name: 'Cancel',
value: false
}
]
}
]).then(res => {
console.log(res)
})