chore: 引入统一日志模块,统一 cli 输出
This commit is contained in:
49
scripts/check.js
Normal file
49
scripts/check.js
Normal file
@@ -0,0 +1,49 @@
|
||||
const path = require('node:path');
|
||||
const { spawnSync } = require('node:child_process');
|
||||
|
||||
const { createLogger, isVerbose, startTimer } = require('../src/generator/utils/logger');
|
||||
|
||||
const log = createLogger('check');
|
||||
|
||||
function runNode(scriptPath) {
|
||||
const result = spawnSync(process.execPath, [scriptPath], { stdio: 'inherit' });
|
||||
return result && Number.isFinite(result.status) ? result.status : 1;
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const elapsedMs = startTimer();
|
||||
log.info('开始', { version: process.env.npm_package_version });
|
||||
|
||||
const repoRoot = path.resolve(__dirname, '..');
|
||||
|
||||
const lintExit = runNode(path.join(repoRoot, 'scripts', 'lint.js'));
|
||||
if (lintExit !== 0) {
|
||||
log.error('lint 失败', { exit: lintExit });
|
||||
process.exitCode = lintExit;
|
||||
return;
|
||||
}
|
||||
|
||||
const testExit = runNode(path.join(repoRoot, 'scripts', 'test.js'));
|
||||
if (testExit !== 0) {
|
||||
log.error('test 失败', { exit: testExit });
|
||||
process.exitCode = testExit;
|
||||
return;
|
||||
}
|
||||
|
||||
const buildExit = runNode(path.join(repoRoot, 'scripts', 'build.js'));
|
||||
if (buildExit !== 0) {
|
||||
log.error('build 失败', { exit: buildExit });
|
||||
process.exitCode = buildExit;
|
||||
return;
|
||||
}
|
||||
|
||||
log.ok('完成', { ms: elapsedMs() });
|
||||
}
|
||||
|
||||
if (require.main === module) {
|
||||
main().catch((error) => {
|
||||
log.error('执行失败', { message: error && error.message ? error.message : String(error) });
|
||||
if (isVerbose() && error && error.stack) console.error(error.stack);
|
||||
process.exitCode = 1;
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user