使用到的包:
1. `util.promisify`是在`node.js 8.x`版本中新增的一个工具,用于将老式的`Error first callback`转换为`Promise`对象
2. Chalk 控制台输出着色Nodejs库
3. Inquirer Node命令行交互工具
[Inquirer入门](https://www.jianshu.com/p/bdb825bb4ef7)
[Inquirer](https://blog.csdn.net/CamilleZJ/article/details/121268346)
4. ora
一个优雅的 Node.js 终端加载动画效果
5. figlet 一个酷炫的文字工具
- create命令
1)提供模版供选择
2)拉取选择的模板 a. 询问用户拉取哪个模板 b. 如果有不同版本,应该拉取那份版本 c. 当前的模板里面,是不是一个复杂的模板; 有自定义化的东西 如果有的话,我们就需要编译完成之后再下载 如果没有,我们就直接下载。
3)下载模板的内容到我们定义的目录 a. 做一个下载缓存 b. 先去看看缓存里面有没有,有的话直接复制过来,如果没有的话,我们再去git拉代码。
package.json
{
"name": "v-cli",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"bin": {
"v-cli": "./bin/www.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"axios": "^0.27.2",
"chalk": "^4.1.2",
"commander": "^9.3.0", //解析用户输入的参数,处理用户参数,执行了对应的action
"figlet": "^1.5.2",
"inquirer": "^8.2.4",
"ora": "^5.4.1"
}
}