easy-cli2
Version:
一个简易的脚手架,提供eslint格式化检查,创建项目模板,自动部署功能,xlsx与json互转,压缩图片等功能
109 lines (108 loc) • 4.61 kB
JavaScript
;
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;