个人博客 个人博客
首页
  • 前端
  • 后端
  • Git
  • Docker
  • 网络
  • 操作系统
工具
阅读
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

董先亮

前端react开发
首页
  • 前端
  • 后端
  • Git
  • Docker
  • 网络
  • 操作系统
工具
阅读
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • homebrew
  • yarn
  • npm
  • eslint
  • prettier
  • lint-staged
  • pretty-quick
  • husky
    • commitlint
    • pnpm
    • npx
    • vite
    • git
    • iTerm配置
    • Mac常见问题
    • 工具
    NeverStop1024
    2022-08-31
    目录

    husky

    # 介绍

    配合git hooks可以帮我们做许多事情(检查您的提交消息、运行测试、检查代码等)。常见的hooks有pre-commit,commint-msg,pre-push。支持所有 Git (opens new window) 钩子。

    gitHooks(常用hooks)

    • pre-commit:钩子在键入提交信息前运行。
    • prepare-commit-msg:钩子在启动提交信息编辑器之前,默认信息被创建之后运行。
    • commit-msg:钩子接收一个参数,存有当前提交信息的临时文件的路径。 如果该钩子脚本以非零值退出,Git 将放弃提交, 因此,可以用来在提交通过前验证项目状态或提交信息。
    • post-commit:钩子在整个提交过程完成后运行。

    # 安装、配置

    # 老版本

    v4.x是老版本,v5以后就不太一样了。我们这里以v4.2.5为例。

    1.安装
    yarn add husky@4.2.5 -D
    2.配置
    在packgae.json中添加husky配置,配置完成,接下来就可以正常使用了。

      "dependencies": {
        // ...
      },
      "husky": {
        "hooks": {
          "pre-commit": "lint-staged",
          "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
        }
      },
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

    # 新版

    v5.x后,我们称之为老版本

    1.安装husky
    yarn add husky -D
    2.在packgae.json中添加prepare脚本

    {
      "scripts": {
        "prepare": "husky install"
      }
    }
    
    1
    2
    3
    4
    5

    prepare脚本会在npm install(不带参数)之后自动执行。也就是说当我们执行npm install安装完项目依赖后会执行 husky install命令,该命令会创建.husky/目录并指定该目录为git hooks所在的目录。

    3.添加git hooks,运行一下命令创建git hooks

    npx husky add .husky/pre-commit "npm run test"
    
    1

    运行完该命令后我们会看到.husky/目录下新增了一个名为pre-commit的shell脚本。也就是说在在执行git commit命令时会先执行pre-commit这个脚本。pre-commit脚本内容如下:

    #!/bin/sh
    . "$(dirname "$0")/_/husky.sh"
       
    npm run  test
    
    1
    2
    3
    4

    可以看到该脚本的功能就是执行npm run test这个命令

    # 新旧版本对比

    关于新版本的husky,比老版本多了一个动作。
    老版本:安装 ——> 配置
    新版本:安装 ——> 启用 ——> 生成 .husky相关配置

    步骤:
    1、npm install husky --save-dev 安装
    2、npx husky install 手动启用husky
    3、npx husky add .husky/pre-commit "npm run lint-staged" 生成husky配置文件(执行完这一步,根目录会有一个 .husky目录)

    # 使用

    # 配置pre-commit

    # 旧版

    在packgae.json中添加husky配置,配置完成,接下来就可以正常使用了。

      "dependencies": {
        // ...
      },
      "husky": {
        "hooks": {
          "pre-commit": "lint-staged",
        }
      },
    
    1
    2
    3
    4
    5
    6
    7
    8
    # 新版

    yarn husky add .husky/pre-commit "yarn lint-staged"

    # 配置commit-msg

    # 旧版

      "dependencies": {
        // ...
      },
      "husky": {
        "hooks": {
          "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
        }
      },
    
    1
    2
    3
    4
    5
    6
    7
    8

    # 新版

    npx husky add .husky/commit-msg 'yarn --no-install commitlint --edit "$1"'

    编辑 (opens new window)
    上次更新: 2022/09/01
    pretty-quick
    commitlint

    ← pretty-quick commitlint→

    最近更新
    01
    mock使用
    07-12
    02
    websocket即时通讯
    07-12
    03
    前端面试题
    07-09
    更多文章>
    Theme by Vdoing | Copyright © 2022-2023 NeverStop1024 | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式