因为git忽略大小写而浪费的一天一夜修复bug

改了多语言文件名(将小写改为大写),vite项目重新发布后,测试环境报找不到这个文件的错误。

心路历程分析:

1,第一反应是缓存问题,后清除浏览器缓存、vite项目版本号改动,

强制清除vite包缓存,使用--force命令(报错,需要再研究一下),都没有效果

2,后面将错误信息,搜索了一下,说是动态文件要用以下方法导入,无效

const modules = await import.meta.glob('./lang/*.ts');
const defaultLocal = await modules[moduleKey]();

// 或者

const modules = await import.meta.globEager('./lang/*.ts'); // vite3里已经弃用
const defaultLocal = await modules[moduleKey];

3,这时我就炸了,本地build后是没有问题的,就是线上环境有问题,难道本地构建后和线上环境还不一致了,除了域名不一致,还有哪里不一致呢,这里也不会涉及域名啊,难道真的是本地代码和git上的代码不一致导致的?!

4,然后打开git查看代码,显示没有需要改动的记录啊,懵逼。然后打开了git远程仓库,这时候终于发现了原因,两边的代码确实不一致。原来是git默认对大小写提交不敏感!

解决方案:

# 查看是否忽略大小写:

git config core.ignorecase

# 备注:true为忽略了大小写,false为为忽略大小写

# 设置默认不忽略大小写:

git config core.ignorecase false

这时候,改动的大写文件终于提交成功了。

但是,远程的小写文件还在,又没法直接在远程仓库进行删除文件的操作,这时候要删除本地缓存文件:

git rm --cached src/locales/lang/nl -r

最后,检查远程仓库,确实一致了。最后成功解决~~

你可能感兴趣的:(Git,bug,git,github,前端)