** 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 |
** 杂感 **
这个问题其实我上大学时,遇到过一次,不过时间长了就忘记了,所以本次特意做下记录,避免再犯。