您的位置:首页 >gitcommit前自动执行lint检查怎么设置?husky+lint-staged详解
发布于2026-07-30 阅读(0)
扫一扫,手机访问
在软件开发流程里,代码风格检查(Code Linting)几乎是保证代码质量和一致性的标配动作。不过,传统的做法往往把 Lint 放在 Code Review 或者 CI 阶段去跑,这就意味着问题发现得晚,反馈链条拉得长,修改起来也费劲。更理想的做法是:在开发者提交代码之前就把这些检查跑一遍,有问题当场解决,别让它们流到后面去。而利用 Git 的 Pre Commit 钩子,配合几个小工具,就能轻松实现这个目标。

先快速认识一下三个主角:
prettier:专门用来统一代码格式,比如缩进、空格、分号这些小细节,不涉及逻辑判断。husky:一个能帮你管理 Git Hook 的工具,这里我们主要用它来绑定 pre-commit 这个钩子——在 commit 执行之前,触发自定义操作。lint-staged:它的作用是对 Git 暂存区里的文件执行代码检查,比如配合 ESLint 或 Prettier。整个流程可以这样理解:
git add 把文件加到暂存区git commit用 npm 或 yarn 把这两个工具装到项目的 devDependencies 里就行:
npm install husky lint-staged --sa ve-dev
或者
yarn add husky lint-staged --dev
如果项目里暂时不需要 Prettier,只做 ESLint 检查,可以在 package.json 里追加以下配置:
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --open",
...
"eslint": "eslint --ext .js,.vue src",
"eslintfix": "eslint --fix --ext .js,.vue src",
"lint-staged": "lint-staged"
},
"husky": {
"hooks": {
"pre-commit": "npm run lint-staged"
}
},
"lint-staged": {
"**/*.{js,vue}": [
"npm run eslint"
]
},
注意,这里没有加 prettier,只对 .js 和 .vue 文件执行 ESLint 检查。
如果打算同时使用 Prettier 来自动格式化代码,再配合 ESLint 检查,可以参考下面的配置(这是 Vue 项目中比较常见的组合):
{
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{js,vue}": [
"prettier --write",
"vue-cli-service lint",
"git add"
]
}
}
解释一下每个步骤的作用:
prettier --write:自动按 Prettier 规则美化代码格式,并覆盖原文件。vue-cli-service lint:Vue 项目的语法检查工具,相当于带 ESLint 的封装。git add:将格式化后的文件再次添加到暂存区,确保 commit 里的代码已经是最新格式。当然,如果你用的是其他技术栈,只要把对应检查命令替换进去即可。
.prettierrc文件
新建一个 .prettierrc 文件,把下面的规则放进去,就能定义你想要的代码风格:
{
"trailingComma": "es5", // 尾随逗号
"tabWidth": 2, // 缩进宽度
"semi": false, // 不要句尾分号
"singleQuote": true, // 使用单引号
"end-of-line": "lf" // 换行符统一为 LF
}
完成以上配置后,当你执行 git commit 时,Lint 程序就会自动检查本次提交所涉及的文件。一旦代码不符合规范,commit 会被直接拒绝,并给出错误提示。如果遇到特殊情况想跳过检查,在提交时加上 --no-verify 参数即可:git commit -no-verify。
通过 husky + lint-staged 的组合,把代码检查提前到 commit 之前,能有效减少后期修复的成本,也能让团队代码风格更统一。配置起来并不复杂,但收益却很明显——代码质量的门槛一下就提高了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8