git hooks

git hooks 的 过程 link

husky 是一个 Git Hook 工具

  1. npm 安装 husky,lint-staged,@commitlint/cli,@commitlint/config-conventional 依赖

lint-staged: 用于实现每次提交只检查本次提交所修改的文件。

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

package.json 添加配置

"husky": {
    "hooks": {
      "pre-commit": "lint-staged",
   // "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
      "pre-push": "yarn test"
    }
  },
  "lint-staged": {
    "*.{js,jsx,ts,tsx}": "eslint --fix",
    "*.{css,scss,sass}": "stylelint --fix",
    "*.{json,md,yml}": "prettier --write"
  },

//.eslintrc .prettierrc  .stylelintrc 添加在根目录下配置,具体见官网

创建 commitlint.config.js 可以配置 commit msg 格式

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'],
  }

Leave a Reply

Your email address will not be published. Required fields are marked *