lint-staged

  1. npm install -D lint-staged

package.json 添加

  1. {
  2. ...
  3. "lint-staged": {
  4. "*.js": "npm run lint"
  5. }
  6. ....
  7. }

可以手动通过 npx lint-staged 来检查暂存区里面的文件

husky

https://zhuanlan.zhihu.com/p/366786798 https://blog.csdn.net/Banterise/article/details/115206267

Git Hook 工具,将其安装到所在仓库的过程中它会自动在 .git/ 目录下增加相应的钩子实现对应的功能,

  • 监测 pre-commit 钩子,完成代码校验
  • 监测 commit-msg钩子,完成提交信息校验
    1. npm install -D husky
    packgae.json 添加,prepare脚本会在npm install(不带参数)之后自动执行
    1. {
    2. "scripts": {
    3. "prepare": "husky install"
    4. }
    5. }

    自己安装需要执行下npx husky install

.git 如果不在当前目录的,需要改成 cd .. && husky install 当前子项目目录名/.husky

运行命令创建git hooks,在执行git commit命令时会先执行 pre-commit 这个脚本

  1. npx husky add .husky/pre-commit "npx lint-staged"

.husky 目录下新增了一个 pre-commit 的脚本

  1. #!/bin/sh
  2. . "$(dirname "$0")/_/husky.sh"
  3. # cd lint-cli //子目录要加一下
  4. npx lint-staged

commitlint-git提交校验

https://github.com/conventional-changelog/commitlint
commitlint 搭配 husky 的 commit message 钩子后,每次提交 git 版本信息的时候,会根据配置的规则进行校验,若不符合规则会 commit 失败,并提示相应信息。

  • @commitlint/cli 校验工具
  • @commitlint/config-conventional 校验规则
  • 安装

    1. npm install @commitlint/cli @commitlint/config-conventional -D
  • 添加配置文件 ```shell module.exports = { extends: [‘@commitlint/config-conventional’] };

  1. - 添加husky钩子
  2. ```bash
  3. npx husky add .husky/commit-msg 'npx --no -- commitlint --edit "${1}"'
  4. #--no-install 参数表示强制npx使用项目中node_modules目录中的commitlint包

会生成文件:

  1. #!/bin/sh
  2. . "$(dirname "$0")/_/husky.sh"
  3. npx --no -- commitlint --edit "${1}"

commitizen-git提交工具

https://github.com/commitizen/cz-cli

基于Node.js的 git commit 命令行工具,辅助生成标准化规范化的 commit message。

https://www.cnblogs.com/savokiss/p/14797080.html
https://zhuanlan.zhihu.com/p/80574300

参考

https://juejin.cn/post/7041768022284976165