jarvis-react
Version:
React脚手架及命令行工具合集
70 lines (69 loc) • 2.01 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getUserConfig = exports.readProjectPackage = exports.convertTime = exports.resolveProjectFile = exports.logger = exports.defaultBuildOptions = void 0;
const path_1 = require("path");
const chalk_1 = require("chalk");
const ora_1 = __importDefault(require("ora"));
const fs_extra_1 = __importDefault(require("fs-extra"));
exports.defaultBuildOptions = {
mode: 'app',
outDir: 'dist',
port: 3000,
};
/**
* 打印信息
*/
exports.logger = {
cyan: (text) => {
console.log(chalk_1.cyan(text));
},
gray: (text) => {
console.log(chalk_1.gray(text));
},
success: (text) => {
return ora_1.default().succeed(text);
},
error: (text) => {
return ora_1.default().fail(text);
},
warn: (text) => {
console.log(chalk_1.yellow(text));
},
};
function resolveProjectFile(filepath) {
return path_1.join(process.cwd(), filepath);
}
exports.resolveProjectFile = resolveProjectFile;
function convertTime(time) {
if (typeof time !== 'number') {
return '0s';
}
const second = time / 1000;
if (second <= 60) {
return `${second}s`;
}
return `${Math.floor(second / 100)}m${(second % 60).toFixed(2)}s`;
}
exports.convertTime = convertTime;
function readProjectPackage() {
const pkg = fs_extra_1.default.readFileSync(resolveProjectFile('package.json'), { encoding: 'utf-8' });
return JSON.parse(pkg);
}
exports.readProjectPackage = readProjectPackage;
function getUserConfig() {
const path = resolveProjectFile('jarvis.config.js');
const options = { ...exports.defaultBuildOptions };
try {
return {
...options,
...require(path),
};
}
catch {
return options;
}
}
exports.getUserConfig = getUserConfig;