lint-staged配置问题简记

4,600 阅读2分钟

三年前初次接触小程序开发,其实也刚踏入互联网行业从事前端开发大半年。

在开发迭代的过程中才开始想着做代码提交及开发规范的检测配置,正好这个任务被 CTO 分配到头上,于是乎一顿操作终于解决了,安装 husky + eslint + prettier + lint-staged,通过提交代码时触发注入 git 的 pre-commit 钩子,来执行相应的任务。

当时的配置是这样的:

image.png 主要关注下 "lint-staged" 中匹配规则对应的命令 "git add",在提交的代码文件有格式或者规范问题被自动调整/修复后,会执行 git add 将改动的文件暂存,这样避免在手动 git add -> git commit -m 'xx'(或者 git commit -am 'xxx')。

当时的配置在使用时是没用任何问题的。

时隔三年后再次做小程序开发的项目,另外一个同事主负责,我来打配合(因为刚入职新公司,而且很久没有开发小程序)。有天他把代码提交及开发规范的检测配置好后,我更新代码继续开发,因为改动了多个文件且不是同一个模块功能,所以提交时我是计划分开 commit 的,在我 git add xxx 完本次要提交的文件进行 git commit -m 'feat: xxx' 时,触发了相应的命令自动进行了 eslint 修复,这个过程完成后代码被顺利 commit 了,但是我发现其它本不打算本次提交的的文件也一并被提交了,导致工作区没有了任何修改。

于是,我看了下他的配置:

image.png

原来他写的 "git add .",触发命令后就把工作区所有改动文件暂存并提交了,于是我改成了 "git add",又改动了几个文件进行了提交测试,发现终端有如下提示:

lint-staged.png

提示语让我删除这行代码,因为任务做出的所有修改都被自动添加到 git commit 索引中,于是就把这条命令删除了。

之前并没有提示,现在有了这样的提示,大概是版本升级带来的便利吧。