Preface
前阵子在项目开发的时候遇到一个问题:代码在我本地(Mac)跑起来是正常的,丢到github actions
跑的时候总是报错。排查了很久,最终发现是因为Git文件名大小写敏感导致的问题,本文做下记录。
当时有个组件命名是test.tsx
,然后我改成了Test.tsx
。代码文件中引入该组件的地方也变成了../../path/Test.tsx
。但是在github actions
的机器上执行的时候却提示找不到文件。
因为 mac/windows 环境下 Git在不设置大小写敏感规则的时候默认大小写是不敏感,github actions跑的机器是 Linux 的,而 Linux 下 Git是默认大小写敏感的。 所以我本地机器(Mac)跑的时候是正常的。
我本地虽然改了文件名为Test.tsx
,可是mac环境下大小写是不敏感的,所以Test.tsx
还是处理成的test.tsx
,git(git status)是没有变更的,导致提交在github仓库中的文件名仍然是test.tsx
。可是代码中的引用路径已经是../path/Test.tsx
了,所以在webpack
打包编译的时候(Linux环境)就会找不到文件。
解决办法
方法一
删除文件,重新添加文件。(删除之前记得备份下文件内容)
方法二
设置Git大小写敏感(这个方法我没有实际试过)1
git config core.ignorecase false
杂感
这个问题其实我上大学时,遇到过一次,不过时间长了就忘记了,所以本次特意做下记录,避免再犯。