UNPKG

easy-cli2

Version:

一个简易的脚手架,提供eslint格式化检查,创建项目模板,自动部署功能,xlsx与json互转,压缩图片等功能

109 lines (108 loc) 4.61 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.cpSync = exports.loggerUnderline = exports.loggerError = exports.loggerSuccess = exports.loggerWarring = exports.loggerInfo = exports.loggerTiming = exports.getCwdPath = exports.getDirPath = void 0; var path_1 = require("path"); var process_1 = require("process"); var chalk_1 = __importDefault(require("chalk")); var fs_extra_1 = __importDefault(require("fs-extra")); // 项目本地路径 var getDirPath = function (relPath) { if (relPath === void 0) { relPath = ""; } return (0, path_1.resolve)(__dirname, relPath); }; exports.getDirPath = getDirPath; // 获取运行路径 var getCwdPath = function (relPath) { if (relPath === void 0) { relPath = ""; } return (0, path_1.resolve)(process.cwd(), relPath); }; exports.getCwdPath = getCwdPath; // 计时日志 var loggerTiming = function (str, start) { if (str === void 0) { str = ""; } if (start === void 0) { start = true; } if (start) { console.time("Timing"); console.log(chalk_1.default.cyan("****** ".concat(str, " START ******"))); } else { console.log(chalk_1.default.cyan("****** ".concat(str, " END ******"))); console.timeEnd("Timing"); } }; exports.loggerTiming = loggerTiming; // 普通日志 var loggerInfo = function (str) { if (str === void 0) { str = ""; } console.log(chalk_1.default.green("\r\n[INFO]\uFF1A ".concat(str))); }; exports.loggerInfo = loggerInfo; // 警告日志 var loggerWarring = function (str) { if (str === void 0) { str = ""; } console.log(chalk_1.default.yellowBright("\r\n[WARRING]\uFF1A ".concat(str))); }; exports.loggerWarring = loggerWarring; // 成功日志 var loggerSuccess = function (str) { if (str === void 0) { str = ""; } console.log(chalk_1.default.greenBright("\r\n[SUCCESS]\uFF1A ".concat(str))); }; exports.loggerSuccess = loggerSuccess; // 报错日志 var loggerError = function (str) { if (str === void 0) { str = ""; } console.log(chalk_1.default.redBright("\r\n[ERROR]\uFF1A ".concat(str))); }; exports.loggerError = loggerError; // 下划线重点输出 var loggerUnderline = function (str) { if (str === void 0) { str = ""; } return chalk_1.default.blue.underline.bold(str); }; exports.loggerUnderline = loggerUnderline; var cpSync = function (source, destination) { try { var major = process_1.version.match(/v([0-9]*).([0-9]*)/)[1]; /** 特性版本 */ var minor = process_1.version.match(/v([0-9]*).([0-9]*)/)[2]; if (fs_extra_1.default.existsSync(destination)) fs_extra_1.default.rmSync(destination, { recursive: true }); // 判断node版本不是16.7.0以上的版本 // 则进入兼容处理 // 这样处理是因为16.7.0的版本支持了直接复制文件夹的操作 if (Number(major) < 16 || (Number(major) == 16 && Number(minor) < 7)) { // 如果存在文件夹 先递归删除该文件夹 if (fs_extra_1.default.existsSync(destination)) fs_extra_1.default.rmSync(destination, { recursive: true }); // 新建文件夹 递归新建 fs_extra_1.default.mkdirSync(destination, { recursive: true }); // 读取源文件夹 var rd = fs_extra_1.default.readdirSync(source); for (var _i = 0, rd_1 = rd; _i < rd_1.length; _i++) { var fd = rd_1[_i]; // 循环拼接源文件夹/文件全名称 var sourceFullName = source + "/" + fd; // 循环拼接目标文件夹/文件全名称 var destFullName = destination + "/" + fd; // 读取文件信息 var lstatRes = fs_extra_1.default.lstatSync(sourceFullName); // 是否是文件 if (lstatRes.isFile()) fs_extra_1.default.copyFileSync(sourceFullName, destFullName); // 是否是文件夹 if (lstatRes.isDirectory()) (0, exports.cpSync)(sourceFullName, destFullName); } } else fs_extra_1.default.cpSync(source, destination, { force: true, recursive: true }); } catch (error) { console.log(chalk_1.default.red(error)); } }; exports.cpSync = cpSync;