1.0.6 • Published 3 months ago

@kyfe/kye-crm-git-checker v1.0.6

Weekly downloads
-
License
ISC
Repository
-
Last release
3 months ago

GitChecker

GitChecker 是一款在代码提交时对代码进行一部分场景检测;代码推送时的一些自动化功能。它们是在 pre-commit hookpre-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
    }
  }
}

rootGitChecker 整个功能开启与关闭配置字段, commitpush 是 在对应 hook 中的一些功能,各功能可自定义错误级别以及开启、关闭规则。

  • error:强校验,规则不通过拒绝执行下一步
  • warning:警告,规则不通过触发提醒,不阻止执行下一步
  • 1:功能开启
  • 0:功能关闭

功能说明

commit

pre-commit hook 中针对代码的一些检测场景

auth

按钮权限检测,kye-buttonel-buttonquery-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。事例如下:

合并前

合并后

1.0.6

3 months ago

1.0.5

3 months ago

1.0.2

4 months ago

1.0.1

4 months ago

1.0.4

4 months ago

1.0.3

4 months ago

1.0.0

4 months ago