背景
上一节课程,我们完成了命令行工具的初始化,并介绍了 kgt-cli 的工作流程。本节课我们重点来讲解下载、模板渲染等功能的实现。
kgt-init
- 判断用户指定的项目生成目录是否为当前目录或该目录已经存在。如果是,执行 5,否则执行 2。
- 执行 run 方法,判断用户指定的模板是否为本地模板。如果是,执行 3,否则执行 4。
- 执行 generate 方法创建项目。
- 执行 downloadAndGenerate 方法下载远程模板后再执行 3。
- 询问用户是否继续执行。如果是,执行 2,否则执行 4。
- 退出程序。
以下是 kgt-init 的完整代码:
#!/usr/bin/env node
const program = require("commander");
const chalk = require("chalk");
const inquirer = require("inquirer");
const download = require("download-git-repo");
const exists = require("fs").existsSync;
const rm = require("rimraf").sync;
const path = require("path");
const home = require("user-home");
const logger = require