@elora-cloud/elora-cli
Version:
elora build cli 前端打包脚手架
54 lines (47 loc) • 1.51 kB
JavaScript
import { readFileSync } from 'node:fs';
import process from 'node:process';
import { isMonorepoProject, isMonorepo } from '../../common/index.mjs';
import 'chalk';
import consola from 'consola';
import 'ora';
import '../../common/constant.mjs';
// eslint-disable-next-line regexp/no-unused-capturing-group
const commitRE = /^(revert: )?(fix|feat|docs|perf|test|types|style|build|chore|release|refactor|breaking change)(\(.+\))?: .{1,50}/;
const mergeRE = /Merge /;
const monorepoExample = `
例子如下:
- fix(cli): 子项目cli的changelog
- feat(ui): 子项目UI库的changelog
- fix: 全局的changelog
`;
const baseExample = `
例子如下:
- fix: 这是提交的项目信息
- feat: 子项目UI库的changelog
`;
async function commitLint(gitParams) {
await isMonorepoProject();
const commitMsg = readFileSync(gitParams, 'utf-8').trim();
if (!commitRE.test(commitMsg) && !mergeRE.test(commitMsg)) {
const example = isMonorepo() ? monorepoExample : baseExample;
consola.error(`提交代码的格式不正确: "${commitMsg}".
您需要按照下面的格式进行提交您本地的代码.
${example}
支持提交的类型:
- fix:修复 bug
- feat:新特性或者新功能
- docs:文档
- perf:性能
- test:测试
- types:类型
- build:构建
- chore:杂项
- release:发布
- refactor:重构
- breaking change:破坏性变更
- Merge branch 'foo' into 'bar'
`);
process.exit(1);
}
}
export { commitLint };