@elora-cloud/elora-cli
Version:
elora build cli 前端打包脚手架
41 lines (38 loc) • 1.61 kB
JavaScript
import { readFileSync, createWriteStream } from 'node:fs';
import { join, dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
import conventionalChangelog from 'conventional-changelog';
import ora from 'ora';
import { isMonorepoProject } from '../../common/index.mjs';
import { ROOT } from '../../common/constant.mjs';
import { slimPath } from '../../common/logger.mjs';
import { transform } from './transform.mjs';
const DIST_FILE = join(ROOT, './CHANGELOG.md');
const __dirname = dirname(fileURLToPath(import.meta.url));
const MAIN_TEMPLATE = join(__dirname, '../../../../template/changelog-main.hbs');
const HEADER_TEMPLATE = join(__dirname, '../../../../template/changelog-header.hbs');
const COMMIT_TEMPLATE = join(__dirname, '../../../../template/changelog-commit.hbs');
const mainTemplate = readFileSync(MAIN_TEMPLATE, 'utf-8');
const headerPartial = readFileSync(HEADER_TEMPLATE, 'utf-8');
const commitPartial = readFileSync(COMMIT_TEMPLATE, 'utf-8');
async function changeLog() {
const spinner = ora('日志生成中...').start();
await isMonorepoProject();
return new Promise((resolve) => {
conventionalChangelog({
preset: 'angular',
releaseCount: 2,
}, undefined, undefined, undefined, {
mainTemplate,
headerPartial,
commitPartial,
transform,
})
.pipe(createWriteStream(DIST_FILE))
.on('close', () => {
spinner.succeed(`Changelog generated at ${slimPath(DIST_FILE)}`);
resolve();
});
});
}
export { changeLog };