wangyj
Version:
wangyj 个人常用命令库
62 lines (61 loc) • 2.36 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.wdtInit = void 0;
const inquirer_1 = __importDefault(require("inquirer"));
const ora_1 = __importDefault(require("ora"));
const download_git_repo_1 = __importDefault(require("download-git-repo"));
const templates_json_1 = __importDefault(require("../templates.json"));
const formatOutput_1 = require("../../../utils/formatOutput");
const wdtInit = async () => {
const keys = Object.keys(templates_json_1.default);
if (keys.length === 0) {
(0, formatOutput_1.formatOutput)("提示信息", "当前无模板", "warning");
return;
}
else {
const { project, select } = await inquirer_1.default.prompt([
{
type: "input",
name: "project",
message: "请输入项目名称",
validate(valid) {
if (!valid.trim()) {
return `项目名称不能为空`;
}
return true;
},
},
{
type: "list",
loop: false,
name: "select",
message: "请选择项目模板",
choices: keys,
},
]);
const url = Reflect.get(templates_json_1.default, select).url;
const spinner = (0, ora_1.default)("Downloading...");
spinner.start();
try {
(0, download_git_repo_1.default)(`direct:${url}`, project, { clone: true }, (err) => {
if (err) {
spinner.fail();
(0, formatOutput_1.formatOutput)("项目生成", "失败", "error");
return;
}
spinner.succeed("Downloaded");
(0, formatOutput_1.formatOutput)("项目生成", "成功,请执行:", "success");
console.log(` cd ${project}`);
console.log(` npm install`);
console.log(` npm run dev\n\n`);
});
}
catch (error) {
(0, formatOutput_1.formatOutput)("错误信息", `${error}`, "error");
}
}
};
exports.wdtInit = wdtInit;