在开发过程当中,尤为是新开项目的时候,每每须要从新进行各类配置、甚至复制以往的代码,为了解决这种场景,就有了 CLI,想必你们平时都常常使用,好比 Vue 的vue-cli
,React 的 create-react-app
,这类工具存在的主要目的是:释放双手、加快项目开发进度。vue
本文就将介绍我如何根据咱们团队内部的繁琐场景编写 CLI,从而加快项目开发速度。react
开发项目中最多见的非后台管理系统莫属了,若是你仔细观察,就会发现大多数的后台管理大同小异。git
就咱们团队内部的后台管理系统而言,每次新开项目时,咱们都须要进行如下操做:github
而每一个页面其实也是大同小异:web
基于以上场景,我想到的解决方法就是编写一个 CLI 工具,能够一行命令实现如下功能:vue-cli
只有 CLI 天然是不够的,还要搭配项目模板(template)使用。json
但要注意脚手架工具要与项目模板解耦,下面细讲。app
建立一个 GitHub 组织存放项目模板,一个模板应该包含如下:工具
meta.jsoncode
根据项目自定义一些问题,好比:
template 文件夹
存放项目模板,初始化时根据用户回答的问题,生成项目。
generator 文件夹
执行 CLI 命令时,由 CLI 调用,主要用来自定义一些问题、模板文件信息等。
主要命令:
init:
初始化项目,这时候会查询项目模板列表,而后根据用户所选的模板进行初始化(把项目模板下载到本地),而且生成一个template.json
记录当前项目模板的名字,供后续使用
add、delete:
此命令需在生成后的项目中使用,会根据template.json
中的模板信息找到对应的 generator
目录下的方法,执行对应的方法。
每一个团队面临的场景不同,若是你也想编写一个本身的 CLI 工具,但愿本文能给你提供一些思路。
若是有兴趣能够参考一下个人 CLI 实现:fa-cli,项目模板:fa-web-template
感谢观看。