UNPKG

@ywfe/cli

Version:

遥望前端开发命令行工具

74 lines (73 loc) 3.37 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.installPkg = exports.downloadTemplate = void 0; const os_1 = require("os"); const child_process_1 = __importDefault(require("child_process")); const chalk_1 = __importDefault(require("chalk")); const inquirer_1 = __importDefault(require("inquirer")); const download_git_repo_1 = __importDefault(require("download-git-repo")); const ora_1 = __importDefault(require("ora")); const path_1 = __importDefault(require("path")); const fs_extra_1 = __importDefault(require("fs-extra")); const rimraf_1 = __importDefault(require("rimraf")); const common_1 = require("../../util/common"); const downloadTemplate = (downloadUrl, templateName, callback) => __awaiter(void 0, void 0, void 0, function* () { const spinner = (0, ora_1.default)(); spinner.start('正在下载模板...'); const templateCachePath = path_1.default.join((0, os_1.homedir)(), '.ywfe-cli-templates', templateName.replace(/\//g, '-')); if (fs_extra_1.default.existsSync(templateCachePath)) { (0, rimraf_1.default)(templateCachePath, (err) => { if (err) { (0, common_1.logger)(chalk_1.default.red('rm templateCachePath err=>', err)); return; } }); } yield (0, download_git_repo_1.default)(downloadUrl, templateCachePath, { clone: true }, (err) => __awaiter(void 0, void 0, void 0, function* () { if (err) { spinner.fail(); (0, common_1.logger)(chalk_1.default.red('✖️ 模板下载失败。')); (0, common_1.logger)(`\r\n失败原因:${err.message.trim()}`); return; } spinner.succeed('模板下载成功!'); (yield callback) && callback(templateCachePath); })); }); exports.downloadTemplate = downloadTemplate; const installPkg = (projectPath) => __awaiter(void 0, void 0, void 0, function* () { const { isInstall } = yield inquirer_1.default.prompt([ { name: 'isInstall', message: `是否安装项目依赖?`, type: 'confirm', default: true, } ]); if (isInstall) { const spinner = (0, ora_1.default)(); spinner.start("正在安装项目依赖..."); child_process_1.default.execSync('npm install', { cwd: projectPath, stdio: 'inherit' }); spinner.succeed("项目依赖安装完成!"); return; } else { return; } }); exports.installPkg = installPkg;