开发笔记
提交时跳过 ESLint 校验
husky + lint-staged 挡住提交的时候,怎么临时绕过,以及为什么别长期这么干
前端仓库基本都挂了 pre-commit 钩子,改一行文档也会被 ESLint 拦下来。临时绕过很简单,但要知道自己绕的是什么。
一次性绕过
git commit -m "提交信息" --no-verify--no-verify(简写 -n)跳过所有 pre-commit 和 commit-msg 钩子。只对这一次提交生效,不动仓库配置。
钩子长什么样
husky 装完会在 .husky/pre-commit 里放一行:
npx lint-stagedlint-staged 读 package.json 里的配置,只对暂存文件跑命令:
{
"lint-staged": {
"*.{js,ts,tsx,vue}": ["eslint --fix", "git add"]
}
}所以拦住你的往往不是 ESLint 本身,而是 --fix 之后仍有报错,或者 git add 那一步失败。
真想跳过时看顺序
- 先
npx eslint <file>单独跑,确认是真的有错还是配置读错。 - 报错是历史遗留文件带来的,用
--no-verify提交,别为了过钩子去改一堆无关代码。 - 报错是自己刚写的代码,老老实实修,跳过只是把债推到 CI。
不建议的做法
git config --unset core.hooksPath # 别这么干把 hooksPath 清掉等于全仓库禁用钩子,团队里其他人拉下来也没校验了。同样的,git commit --no-verify 写进 alias 或者被 IDE 默认勾上,都会让钩子形同虚设。
CI 上的 lint 步骤才是最后一道闸,本地跳过的提交照样会在流水线里挂掉——与其在 CI 上等五分钟,不如本地修完。