cli开发—什么是CLI,与基础的几个包。

140 阅读2分钟

这是我参与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)
})