TS1261文件名仅大小写不同报错 保留大小写强制校验配置解决方案
报错根因
macOS默认的APFS文件系统为大小写不敏感模式,TypeScript开启forceConsistentCasingInFileNames: true时,会严格校验所有被纳入编译范围的文件路径大小写是否完全匹配磁盘实际存储值。当前报错是因为编译链路中同时存在大写开头的New目录路径、小写开头的new目录路径指向同一份文件,触发了TS的大小写一致性校验。
解决方案(保留
forceConsistentCasingInFileNames: true配置) - 统一全项目代码内的引用路径大小写
全局检索项目内所有涉及activity/pages/new的import/require语句、路由配置、资源引用,全部替换为和磁盘实际存储一致的activity/pages/New,重点检查同目录下index.tsx对hooks.ts的相对引用、其他业务模块引入该页面组件的路径,确保无任何一处使用小写new拼写该目录名。 - 修正构建配置的路径大小写
检查webpack配置中的entry入口配置、loader的include/exclude匹配规则、构建脚本中传入的文件路径参数,将所有写为.../pages/new/的路径全部修正为大写开头的.../pages/New/,从编译入口层面统一路径大小写。 - 清理多端缓存避免历史路径残留
大小写不敏感文件系统容易导致工具链缓存错误路径,依次执行以下操作清缓存:- 删除项目下
node_modules/.cache目录,清空webpack、ts-loader的本地构建缓存 - 若项目使用git管理,执行
git rm -r --cached .后重新执行git add .提交,修正git索引中记录的错误路径大小写 - 重启本地IDE/代码编辑器,清空编辑器自身的路径索引缓存
- 删除项目下
保留
forceConsistentCasingInFileNames: true可以提前规避项目部署到Linux等大小写敏感的服务器环境时,出现线上文件404的问题,不建议关闭该配置。
内容的提问来源于stack exchange,提问作者Lin Du
相关产品推荐
相关产品推荐

