目前在市面上存在很多脚手架,如:create-react-app、vue-cli。我们可以通过一行简单的命令,就能创建一个基本的项目工程,大大的提高了开发效率。但是我们会面临一个问题,除了脚手架帮我们创建好的项目框架,我们的项目总有需要定制化的配置,比如我们需要引入我们想要的elementUI
框架,引入axios
相关的工具类完成http
请求等。我们不可能每次开启新项目都再配置一遍吧,这太劳神费力了。
通常我们会搞一个个性化脚手架cli,平时创建项目时通过该脚手架一键生成,并同时完成所有需要的配置,以快速开发。接下来,我们看看怎么搞?
1.CLI 的运行原理
-
创建动态链接库,暴露全局 cli 命令
如果要暴露一个全局的命令,首先需要在 package.json 文件中编写一个 bin 命令,当前示例指向bin目录下的mycli.js文件。
"bin": "bin/mycli.js"
-
读取并解析命令行参数
读取命令行参数其实非常简单,使用 program.argv 获取
-
提供用户可选的配置项
根据用户的选择,创建不同类型的项目模板,比如是否要typescript支持
-
拷贝自定义模板到本地
一般我们会事先准备好一个项目模板,供cli下载
2.创建cli所需要的部分依赖模块
-
commander
实现控制台命令行问