美文网首页
husky 是一个 Git Hook 工具--主要实现提交前 e

husky 是一个 Git Hook 工具--主要实现提交前 e

作者: 35108b7328fb | 来源:发表于2020-05-26 18:49 被阅读0次

    原文
    https://blog.csdn.net/huangpb123/article/details/102690412
    用 husky 和 prettier 保证团队代码格式一致性
    https://www.jianshu.com/p/1cb5d9d670f2

    husky 是一个 Git Hook 工具。本文主要实现提交前 eslint 校验和 commit 信息的规范校验,-对统一团队规范很有帮助

    1. 安装 husky,lint-staged,@commitlint/cli,@commitlint/config-conventional 依赖
      lint-staged: 用于实现每次提交只检查本次提交所修改的文件。
    npm i -D husky lint-staged @commitlint/cli @commitlint/config-conventional
    

    注意:一定要使用 npm 安装 eslint 和 husky,因为在 windows 操作系统下, 用 yarn 安装依赖,不会触发 husky pre-commit 钩子命令。

    1. 创建 .huskyrc
    {
      "hooks": {
        "pre-commit": "lint-staged",
        "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
      }
    }
    
    1. 创建 .lintstagedrc
    {
      "src/**/*.js": "eslint"
    }
    

    设置 fix 可以自动修复错误:

    {
       "src/**/*.js": ["eslint --fix", "git add"]
    }
    

    或者使用下面的配置,自动格式化代码(谨慎使用):

    {
       "src/**/*.js": ["prettier --write", "git add"]
    }
    
    1. 创建 commitlint.config.js
    module.exports = {
      extends: ['@commitlint/config-conventional'],
      rules: {
        'type-enum': [
            2,
            'always',
            [
            'feat', // 新功能(feature)
            'fix', // 修补bug
            'docs', // 文档(documentation)
            'style', // 格式(不影响代码运行的变动)
            'refactor', // 重构(即不是新增功能,也不是修改bug的代码变动)
            'test', // 增加测试
            'revert', // 回滚
            'config', // 构建过程或辅助工具的变动
            'chore', // 其他改动
            ],
        ],
        'type-empty': [2, 'never'], // 提交不符合规范时,也可以提交,但是会有警告
        'subject-empty': [2, 'never'], // 提交不符合规范时,也可以提交,但是会有警告
        'subject-full-stop': [0, 'never'],
        'subject-case': [0, 'never'],
      }
    }
    

    相关文章

      网友评论

          本文标题:husky 是一个 Git Hook 工具--主要实现提交前 e

          本文链接:https://www.haomeiwen.com/subject/oqgvahtx.html