mirror of
https://gitee.com/h_mo/uniapp-vue3-vite-ts-template
synced 2025-04-05 06:12:44 +08:00
29 lines
989 B
TypeScript
29 lines
989 B
TypeScript
/**
|
||
* 提交信息校验
|
||
* @link https://github.com/toplenboren/simple-git-hooks
|
||
* @see 参考:https://github.com/vuejs/vue-next/blob/master/.github/commit-convention.md
|
||
*/
|
||
import { readFileSync } from 'node:fs';
|
||
import path from 'node:path';
|
||
import process from 'node:process';
|
||
import pico from 'picocolors';
|
||
|
||
const msgPath = path.resolve('.git/COMMIT_EDITMSG');
|
||
const msg = readFileSync(msgPath, 'utf-8').trim();
|
||
|
||
const commitRE
|
||
= /^(?:revert: )?(?:feat|fix|docs|dx|style|refactor|perf|test|workflow|build|ci|chore|types|wip|mod|release|strengthen)(?:\(.+\))?: .{1,50}/;
|
||
|
||
if (!commitRE.test(msg)) {
|
||
console.log(pico.yellow(`\n提交的信息: ${msg}\n`));
|
||
console.error(
|
||
` ${pico.white(pico.bgRed(' 格式错误 '))} ${pico.red(
|
||
'无效的提交信息格式.',
|
||
)}\n\n${
|
||
pico.red(' 正确的提交消息格式. 例如:\n\n')
|
||
} ${pico.green('feat: add a new feature')}\n`
|
||
+ ` ${pico.green('fix: fixed an bug')}`,
|
||
);
|
||
process.exit(1);
|
||
}
|