1.0.6 • Published 3 months ago
@kyfe/kye-crm-git-checker v1.0.6
GitChecker
GitChecker 是一款在代码提交时对代码进行一部分场景检测;代码推送时的一些自动化功能。它们是在 pre-commit hook
、pre-push hook
中执行。
安装和使用
npm install @kyfe/kye-crm-git-checker
代码检测
框架已在项目内的 pre-commit hook
中集成了 eslint
校验,我们只需将自定义检测规则添加进去,进入文件 base/packages/lint-staged/index.js
引入并调用即可。
const gitChecker = require('@kyfe/kye-crm-git-checker')
// 要放在代码最后调用,先进行 eslint 检测,通过后再进行自定义校验
...
gitChecker.start()
自动合并
此功能无需单独引用,GitChecker 安装时会自动在项目的子仓库中创建 git pre-push hook
文件并进行引用。
配置
运行 npm install @kyfe/kye-crm-git-checker
后,项目根目录下将会生成一个 .gitcheckerrc
文件,在其中会有一些规则配置如下:
{
root: true,
rules: {
commit: {
'auth': 'error',
'css': 'error',
'complexity': 'error',
},
push: {
'auto-merge-commit': 1
}
}
}
root
是 GitChecker
整个功能开启与关闭配置字段, commit
和 push
是 在对应 hook 中的一些功能,各功能可自定义错误级别以及开启、关闭规则。
error
:强校验,规则不通过拒绝执行下一步warning
:警告,规则不通过触发提醒,不阻止执行下一步1
:功能开启0
:功能关闭
功能说明
commit
pre-commit hook
中针对代码的一些检测场景
auth
按钮权限检测,kye-button
、el-button
、query-table
中按钮是否有配置 auth
字段。示例如下:
触发校验
<kye-button type="text">新增</kye-button>
<kye-button type="text" auth="">新增</kye-button>
// query-table tools
{
label: '新增',
icon: 'plus',
func: () => {}
}
{
label: '新增',
icon: 'plus',
auth: '',
func: () => {}
}
不触发校验
// 无需权限按钮可添加 git_ignore_auth 属性进行豁免
<kye-button type="text" git_ignore_auth>新增</kye-button>
<kye-button type="text" auth="BTo2Q1kDyEVJ">新增</kye-button>
// query-table tools
{
label: '新增',
icon: 'plus',
git_ignore_auth: true,
func: () => {}
}
{
label: '新增',
icon: 'plus',
auth: 'BTo2Q1kDyEVJ',
func: () => {}
}
css
css 规范检测,根元素 class 命名、style 标签编写规范等(同框架内 css 检测规则)。示例如下:
触发校验
<template>
<div class="container"></div>
</template>
<style lang="scss">
</style>
<style lang="scss" scoped>
</style>
<style lang="scss">
</style>
不触发校验
<template>
<div class="crm-kye-price"></div>
</template>
<style lang="scss" scoped>
</style>
complexity
单文件代码认知复杂度检测,检测本次提交代码中单文件复杂度是否超过设置的阈值,暂时内置最大为 150。
push
pre-push hook
中针对 commit 记录自动合并功能
auto-merge-commit
push 代码时会自动检测相同的 commit message,将相同的记录自动合并成一个再 push。事例如下:
合并前
合并后