最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • commitlint 从0到1 (git commit 校验工具)

    正文概述 掘金(copyLeft)   2021-06-29   1041

    背景

    Commitlint git commit 格式校验工具。

    安装

    • 安装npm包
    npm install -g @commitlint/cli @commitlint/config-conventional
    
    • 新建配置文件
    touch commitlint.config.js
    // commitlint.config.js
    module.exports = {
      extends: ['@commitlint/config-conventional']
    }
    

    配置文件

    默认读取根目录下commitlint.config.js 配置文件

    指定配置文件

    commitlint --config <file path>
    

    配置项

    • extends 继承外部配置文件或npm配置包
    {
      extends: [
        // 使用本地共享配置文件
        './commitlint.local.js',
        // 使用第三方npm包
        '@commitlint/config-conventional',  
        // 以 `<scope>/commitlint-config` 格式的第三方包, 提供简写模式
        '@coolcompany',
        // commitlint-config-*
        'lerna',
      ]
    }
    
    • parserPreset 解析器路径(必填)
    {
       parserPreset: 'conventional-changelog-atom',
    }
    
    • formatter 格式化工具(必填)
    {
      formatter: '@commitlint/format',
    }
    
    • rules 本地自定义规则, 优先级高于extends
    {
      'type-enum': [2, 'always', ['foo']]
    }
    
    • ignores 忽略函数, 帮助忽略某些不需要的提交信息
    {
      ignores: [(commit) => commit === ''],
    }
    
    • defaultIgnores 是否使用默认忽略配置
    {
      defaultIgnores: true
    }
    
    • helpUrl 帮助信息地址

    'github.com/conventiona…',

    • prompt 自定义提示信息
    {
      prompt: {
        messages: {},
        questions: {
          type: {
            description: 'please input type:',
          },
        },
      },
    }
    

    自定义校验规则

    规则格式

    [规则名称]:[level, applicable, value]

    • level 校验等级
      • 0 禁用
      • 1 警告
      • 2 错误
    • applicable
      • always
      • nerver
    • value 参数值

    规则可接收: 1. 规则数组 Array, 2. 返回规则数组的函数 () => arry , 3. Promise规则数组 Promise ,作为值

    {
      "rules":{
          "header-max-length": [0, "always", 72],
          "header-max-length": () => [0, "always", 72],
          "header-max-length": async () => [0, "always", 72],
      }
    }
    

    规则项

    • header-case 单词格式, 例如: upper-case 全大写
    • header-full-stop 结束符
    • header-max-length header 最大长度
    • header-min-length header 最小长度
    • references-empty
    • scope
      • scope-enum scope 可选值, 例如 [ 'components', 'utils', 'cli' ]
      • scope-case scope 单词格式
      • scope-empty 是否为空
      • scope-max-length scope最大内容长度
      • scope-min-length scope最小内容长度
    • subject
      • subject-case subject 单词格式
      • subject-empty subject 是否为空
      • subject-full-stop subject 中止符
      • subject-max-length subject 最大内容长度
      • subject-min-length subject 最小内容长度
      • subject-exclamation-mark 分割符
    • type
      • type-enum type 可选值 例如: [ 'feat', 'fix' ]
      • type-case type 单词格式
      • type-empty type是否为空
      • type-max-length type最大内容长度
      • type-min-length type最小内容长度
    • signed-off-by
    • trailer-exists

    • body-full-stop body 结束符
    • body-leading-blank body 开头空行
    • body-empty body 是否为空
    • body-max-length body最大内容长度
    • body-max-line-length body最大内容行数
    • body-min-length body最小内容长度
    • body-case 单词格式 , 例如: upper-case 全大写

    • footer-leading-blank footer 开头空行
    • footer-empty footer是否为空
    • footer-max-length footer最大内容长度
    • footer-max-line-length footer最大内容行数
    • footer-min-length footer最小内容长度

    规则插件

    规则插件为我们提供自定义规则校验个能力。

    本地插件

    {
      rules: {
        // 添加规则
        'header-size-10': [2, 'always']
      }
      plugins: [
         // 定义插件
        {
          rules:{
            // 定义规则
            'header-size-10': ({header}) => {
               const pass = header.length > 10
               const message = `header 长度不能超过10个字符`
               return [pass, message]
            }
          }  
        }
      ]
    

    官网其他插件方式

    Prompt 提示器

    提示器类似 commitizen 提供commit 提示工具。

    安装

    • 包安装
    npm i -D  @commitlint/cli  @commitlint/config-conventional @commitlint/prompt-cli
    
    • 配置文件
    // commitlint.config.js
    module.exports = {extends: ['@commitlint/config-conventional']}
    
    • package.json 设置
    "scripts": {
      "commit": "commit"
    }
    
    • 使用

    git add *

    npm run commit
    

    commitizen 适配器

    commitizen 作为 Prompt 的替代方案, 官方为他提供适配器 @commitlint/cz-commitlint

    该适配器主要有两部分组成:

    • messages: 提示信息
    • questions: 交互配置

    修改适配器

    通过 commitlint.config.json 配置文件自定义类型提示

    为命令配置中文提示

    commitlint 从0到1 (git commit 校验工具)

    commitlint 从0到1 (git commit 校验工具)

    @commitline/cz-commitlint 详情


    起源地下载网 » commitlint 从0到1 (git commit 校验工具)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元