UNPKG

create-super

Version:

super构建器

85 lines (73 loc) 2.2 kB
"use strict"; const inquirer = require("inquirer"); const exec = require("child_process").exec; const ProgressBar = require("progress"); exports.create = function () { inquirer.prompt([{ type: "list", message: "请选择您要使用的模块", name: "module", choices: ["一体包", "单组件"] }, // { // type: "list", // message: "项目使用的脚手架", // name: "frame", // choices: ["umi", "其它"], // }, { type: "list", message: "选择安装方式", name: "install", choices: ["yarn", "npm"] }, { type: "confirm", message: "确认已选内容请输入y/Y开始下载", name: "confirm" }]).then(answer => { // 不执行下载命令 if (!answer.confirm) return; let moduleCode = answer.module === "一体包" ? "super-control umi-plugin-super" : "react-super"; // let pluginCode = answer.frame === "umi" ? "umi-plugin-super" : ""; let installCode = answer.install === "yarn" ? "yarn add" : "npm install"; const npmText = installCode + " " + moduleCode; // 在当前目录下的scripts文件夹里执行hexo g命令 console.log("\x1B[32m%s\x1b[0m", "正在下载中--->"); const bar = new ProgressBar("downloading [:bar] :percent :etas", { total: 30 }); createProgressBar(bar); exec(npmText, { cwd: process.cwd() }, (err, stdout, stderr) => { if (err) { console.log(err); return; } bar.tick(30); console.log(`${stdout}`); console.log("\x1B[32m%s\x1b[0m", "success 组件包安装完成"); if (answer.module === "一体包") { init(answer.install); } }); }); }; function init(install) { console.log("\x1B[32m%s\x1b[0m", "开始执行初始化命令--->"); exec(`${install} run super init`, { cwd: process.cwd() }, (err, stdout, stderr) => { if (err) { console.log(err); return; } console.log(`${stdout}`); console.log("\x1B[32m%s\x1b[0m", "欢迎使用super"); }); } function createProgressBar(bar) { const timer = setInterval(() => { bar.tick(); if (bar.curr === 29 || bar.complete) { clearInterval(timer); } }, 200); }