@ywfe/cli
Version:
遥望前端开发命令行工具
74 lines (73 loc) • 3.37 kB
JavaScript
;
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;