UNPKG

@tuoyuan/cli

Version:

拓源网络脚手架

65 lines (62 loc) 2.1 kB
import downloadGitRepo from 'download-git-repo' import { printText } from './text.js' import chalk from "chalk"; import ora from 'ora' // 判断文件夹是否存在 function isDirectoryExist(dirName) { try { fs.accessSync(dirName, fs.constants.F_OK); printText(`文件夹${chalk.blue(dirName)}已存在`,'error') return true; } catch (error) { return false; } } /** * 下载 模板 * */ export function downloadGitClone(url,name){ const spinner = ora('下载中').start() downloadGitRepo('direct:'+url, name, { clone: true },function(err){ spinner.stop() // 原因是项目不存在master分支,其实是拉取成功的,忽略该报错 if (err && err.message !== "'git checkout' failed with status 1") { printText(`下载失败,请检查网络环境`,'error') return; } else{ printText(`\n`,'success') spinner.succeed('下载成功') printText(`\n`,'success') printText(`\n cd ${name}`,'info') printText(`\n安装依赖:pnpm install`,'info') printText(`\n运行项目:pnpm dev`,'info') } }) } /** * 根据配置拉取模板 * @param config 配置 */ function downloadTemplate(config) { spanner.loading(i18n.eauInit.onDownload); return new Promise((resolve, reject) => { const { projectName, template, useSSH } = config; let link = useSSH ? template.ssh : template.https; download("direct:" + link, projectName, { clone: true }, (err) => { // 可能会报错 'git checkout' failed with status 1 // 原因是项目不存在master分支,其实是拉取成功的,忽略该报错 if (err && err.message !== "'git checkout' failed with status 1") { spanner.fatal(i18n.eauInit.download[0]); spanner.fatal(err); return; } else { spanner.success(i18n.eauInit.download[1]); spanner.blank(2); spanner.info(i18n.eauInit.download[2] + chalk.yellow(" cd " + projectName + " ") + i18n.eauInit.download[3], "gray"); spanner.blank(); resolve(); } }); }); }