由于一些客观原因,多个项目多套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检查