React项目webpack报global.js大小写同名模块冲突报错解决求助
问题成因
该报错是文件路径大小写不一致触发的webpack校验规则,Windows/macOS默认文件系统不区分大小写,但webpack模块解析默认区分大小写,同个文件被识别为两个不同模块就会抛出该警告。你提供的报错路径里存在两处明确的大小写不一致:
- 系统目录:大写的
Desktop和小写的desktop - 项目目录:首字母大写的
LinkparmacySystem和全小写的linkparmacysystem
解决方案
方案1:统一项目访问路径(优先级最高,可根治问题)
- 关闭当前所有打开的项目终端、代码编辑器
- 从资源管理器手动进入和真实目录大小写完全匹配的路径:
C:\Users\user\Desktop\projects\LINK\LinkparmacySystem - 在此路径下重新打开终端/代码编辑器,执行
npm run start重启项目即可,绝大多数情况这一步就能消除警告。
方案2:添加路径大小写校验插件(避免后续再出现同类问题)
如果是团队协作项目,建议添加webpack插件强制统一路径大小写,从开发阶段拦截问题:
- 安装依赖:
npm install case-sensitive-paths-webpack-plugin --save-dev - 如果你用了
craco/react-app-rewired自定义webpack配置,在配置文件中添加插件:
const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin'); module.exports = { webpack: { plugins: [new CaseSensitivePathsPlugin()] } }
插件会在导入路径大小写错误时直接抛出明确错误,避免隐式问题遗留到线上。
方案3:临时屏蔽警告(仅应急使用,不推荐)
如果暂时无法调整路径,可以在项目根目录.env文件中添加配置关闭webpack大小写检查:DISABLE_CASE_SENSITIVE_WARNINGS=true
注意该方案只是隐藏警告,没有解决根本问题,后续项目部署到区分大小写的Linux服务器时,可能会出现文件找不到的线上故障。
其他排查点
如果上述方案都无效,可以尝试以下操作:
- 删除
node_modules目录和package-lock.json/yarn.lock锁文件,重新执行npm install安装依赖 - 全局检查项目中所有
import语句的路径大小写,确保和真实文件路径完全一致 - 确认本地没有同时打开两个大小写不同路径下的同个项目
内容的提问来源于stack exchange,提问作者Epigie
相关产品推荐
相关产品推荐

