一个git仓库多个项目配置pre-commit代码校验

2022-12-27 19:14:57 浏览数 (2)

由于一些客观原因,多个项目多套eslint配置需要放到同一个Git仓库,那么如何配置pre-commit的eslint校验才能保证对多个文件夹进行校验?

我们看一个具体的项目,前后端代码在同一个Git仓库的两个项目,目录结构如下

其中client和server目录内为相互独立项目,分别有自己的eslint配置。需要在代码提交时,对两个项目的代码都进行eslint校验

具体配置方法如下,项目根目录package.json配置如下

代码语言:javascript复制
{
  "name": "xxx",
  "version": "0.0.1",
  "description": "",
  "author": "",
  "private": true,
  "scripts": {
    "prepare": "husky install"
  },
  "devDependencies": {
    "husky": "^8.0.2"
  }
}

然后执行

代码语言:javascript复制
npm run prepare

接着执行

代码语言:javascript复制
npx husky add .husky/pre-commit "npm test"

修改.husky/pre-commit 文件

代码语言:javascript复制
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

cd client && npm run lint && cd ..
cd server && npm run lint && cd ..

其中client和server文件夹下的package.json的scripts中分别有各自的lint配置

参考示例

代码语言:javascript复制
"lint": "eslint src --fix --ext .js,.jsx,.ts,.tsx",

在每次commit时,两个项目的代码都会进行eslint检查

0 人点赞