原文
https://blog.csdn.net/huangpb123/article/details/102690412
用 husky 和 prettier 保证团队代码格式一致性
https://www.jianshu.com/p/1cb5d9d670f2
husky 是一个 Git Hook 工具。本文主要实现提交前 eslint 校验和 commit 信息的规范校验,-对统一团队规范很有帮助
- 安装 husky,lint-staged,@commitlint/cli,@commitlint/config-conventional 依赖
lint-staged: 用于实现每次提交只检查本次提交所修改的文件。
npm i -D husky lint-staged @commitlint/cli @commitlint/config-conventional
注意:一定要使用 npm 安装 eslint 和 husky,因为在 windows 操作系统下, 用 yarn 安装依赖,不会触发 husky pre-commit 钩子命令。
- 创建 .huskyrc
{
"hooks": {
"pre-commit": "lint-staged",
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}
- 创建 .lintstagedrc
{
"src/**/*.js": "eslint"
}
设置 fix 可以自动修复错误:
{
"src/**/*.js": ["eslint --fix", "git add"]
}
或者使用下面的配置,自动格式化代码(谨慎使用):
{
"src/**/*.js": ["prettier --write", "git add"]
}
- 创建 commitlint.config.js
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [
2,
'always',
[
'feat', // 新功能(feature)
'fix', // 修补bug
'docs', // 文档(documentation)
'style', // 格式(不影响代码运行的变动)
'refactor', // 重构(即不是新增功能,也不是修改bug的代码变动)
'test', // 增加测试
'revert', // 回滚
'config', // 构建过程或辅助工具的变动
'chore', // 其他改动
],
],
'type-empty': [2, 'never'], // 提交不符合规范时,也可以提交,但是会有警告
'subject-empty': [2, 'never'], // 提交不符合规范时,也可以提交,但是会有警告
'subject-full-stop': [0, 'never'],
'subject-case': [0, 'never'],
}
}