project next cli
可能更通用的脚手架,基于 Github API v3 实现. 基于团队的 chef-cli 增强。
背景和实现细节
下载
yarn globally add project-next-cli
npm i -g project-next-cli
支持
- 提供脚手架管理: 下载,初始化,版本选择等功能
- 基于所有的github项目组
- 增强:改变输入方式为选择,改进体验
- 增强:支持swig模板编译
- 提供interfaces接口,开发者可自定义生成的项目的选项,提供生成成功后的钩子,点击查看实例
关于interfaces
远程仓库增加interfaces接口目录,其中放置 ask.js, hook.js, 方便扩展,若没有则使用内置的ask
- ask.js
可以是数组, 可以是一个返回数组的方法;遵循 Inquirer prompt参数
- hook.js
目前只提供生成成功后方法也就是after,提供给开发者作扩展用。after函数,可以是async function, 返回Promise实例的函数,普通函数。
How to use
project install
project init
project update
project search
project uninstall <installed template>
project config set <k> <v>
project config remove <k>
project config get <k>
project config help
文件说明
src目录下每个文件对应一个功能,project.js是入口文件,index.js是统一入口,其他*.js文件为对应的命令文件。 utils 为基础库目录, helper 为 模板引擎编译帮助文件目录
├── LICENSE
├── README.md
├── bin
│ └── project
├── package.json
├── project-next-cli.gif
├── src
│ ├── clear.js
│ ├── config.js
│ ├── helper
│ ├── index.js
│ ├── init.js
│ ├── install.js
│ ├── list.js
│ ├── project.js
│ ├── search.js
│ ├── uninstall.js
│ ├── update.js
│ └── utils
└── yarn.lock
Thanks
TODO
- 支持模板引擎
- 支持外部interface,可以自定义问答输入,自定义完成后后续操作
- 测试用例
LICENSE
MIT