【编码规范】如何自动修复非格式化的代码提交?

107 阅读1分钟

项目中增加了eslint和prettier,也不能100%保证,提交上来的代码,符合格式要求

那么就需要,在代码提交时,检查代码并自动修复代码

git hooks 结合 lint-staged,就可以实现

一、知识简介

(1)git hooks

git 在执行某个事件之前或之后进行一些其他的操作

简单介绍一个钩子:

  • pre-commit:git 提交前被调用

其中,husky 是git hooks的工具

(2)lint-staged

通过 lint-staged,可以配置在每次提交代码时自动运行 lint 工具

只检查本次修改更新的代码,并在出现错误的时候,自动修复

二、实际操作

  1. 安装依赖husky:
npm install husky --D
  1. 生成 .husky 文件夹
npx husky install

根目录会增加如下文件:

image.png

  1. 在 package.json文件,scripts 中生成 prepare 指令
npm set-script prepare "husky install"

或者在scripts中,手动写入"prepare": "husky install"

  1. 执行 prepare 指令
npm run prepare

执行成功后提示

image.png

  1. 在git hooks的pre-commit中,也就是代码提交之前,增加格式化修复
npx husky add .husky/pre-commit 'npx lint-staged'

命令执行成功以后,.husky文件下,增加pre-commit文件

  1. 在 package.json增加如下修复限制代码
"lint-staged": {
    "src/**/*.{js,ts,vue}": [
      "eslint --fix",
      "git add"
    ]
  }

限制检验和修复,src目录下的js,ts,vue文件

至此,git 提交代码时,会自动验证和修复代码啦。