vue提交代码报错---eslint检查
最近下载了一个vue项目只改了一个页面,本地调试成功后提交代码却一直提交不上去,解决这个问题耗时太久所以记录一下这个问题。
先是在开发工具vscode里面进行提交, 报错如下图
提示forgetPassword.vue这个我修改过的页面有语法错误,无法提交。
然后改成git命令进行尝试提交
# 查看变动了哪些文件
git status # 全部添加的暂存区,点 也可以换成单个文件比如 git add forgetPassword.vue
git add .# 提交
git commit -m '你的代码注释'# 推送远程git空间
git push

报错信息一样,这是因为这个项目使用了eslint进行代码检查,提交时会通过钩子触发检查,若不通过就会不允许提交。因为本地已调试通过,所以思路是先关闭eslint检查,把代码提交上去。
-
关闭项目中的eslint开关

找到vue.config.js里面的lintOnSave改为false,然而提交还是相同报错 -
添加eslint忽略检查文件

在项目根目录下找到 .eslintignore文件(没有就新建一个),里面添加上报错指示的那个文件路径。然而提交git还是相同报错 -
修改eslint 的校验规则
项目根目录下有eslintrc.js 或者eslintrc.json文件,里面就是配置了很多的检查规则。但一下子没那么快知道是哪个规则限制,找到了规则也要进行修改或者删或者注释先,总之没那么快所以不建议这个方法了。

-
修改或者删除git hook
eslint通常是通过git 的pre-commit触发的,去到项目下的 .git/hook目录,找到pre-commit这个文件,删掉或者改成名称如back-pre-commit进行备份,即可禁用钩子。
此方法测试成功,可以成功提交代码到远程git

总结下来,上面这4个方法依次可以理解为:钩子开关控制–>钩子忽略配置–>钩子规则配置–>钩子校验程序,最后是干掉了校验程序才解决。
从第4个方法来,pre-commit文件内容如下

只要不进入if逻辑 就不会执行校验检查,所以把这个if里面的东西都注释掉, 或者scriptPath路径改成一个找不到路径(比如把项目下的node_modules的husky文件改个别的名称)这样也能实现禁用钩子。
