最近要开发一个 cli
,主要作用是方便同事生成前端项目,做了一天半,基本参考的是 vue-cli
。
cli
要实现的功能:
- 用
cnpm install zt-cli -g
全局安装,这个就要将你做的cli
传到npmjs
上,方便下载安装,具体操作在 npm 发布包 有介绍 - 命令行执行,用到了
commander
, 根据不同的命令执行生成的配置 - 在命令行中输入项目名,自动生成对应的项目目录
- 从
git
中下载模板,下载时候有加载效果 用ora
,下载用的是git-clone
- 下载完成后,有提示是否修改 package.json 中的
name
、description
、Author
,后面可能还会有 是PC还是移动端,是 Vue 还是 React之类的,然后根据输入的内容修改 package.json。这个过程有个问题:是在 cmd 的目录中直接生成项目后修改 package.json,还是先临时在 文档目录 中生成一个临时文件,修改后复制过去。vue-cli
采用的后面那种,我用的也是后面一种。问问题我用的是inquirer
,shell 命令用的是shelljs
- 下载完成后有提示
- package.json 中会有一些逻辑要通过代码判断,选用了
consolidate
和handlebars
来处理
后面把这块都写出来