在AWS Amplify运行React遇react-collapsed依赖冲突错误求助
问题原因
从错误日志能明确看到:react-collapsed@3.6.0的peer依赖要求是React ^16.8 或 ^17,但你的项目使用的是React 18.2.0。本地开发时npm可能采用了宽松的依赖解析策略(默认忽略peer冲突),但AWS Amplify构建环境的npm依赖解析更严格,因此触发了ERESOLVE错误。
解决方案
以下是三种可行的解决办法,按优先级排序:
1. 升级react-collapsed到支持React 18的版本
react-collapsed从4.x版本开始已经兼容React 18,直接升级到最新版即可解决依赖冲突:
npm install react-collapsed@latest
这是最推荐的方案,既能解决问题,也能获得新版本的功能和修复。
2. 在Amplify构建命令中添加--legacy-peer-deps参数
如果暂时不想升级包,可以修改Amplify的构建配置,让npm忽略peer依赖冲突:
- 进入AWS Amplify控制台,找到你的项目→构建设置→编辑
- 将原来的构建命令(比如
npm ci)修改为:
npm ci --legacy-peer-deps
这个参数会让npm采用旧版本的peer依赖解析逻辑,跳过冲突检查。
3. 使用npm overrides强制统一依赖版本(npm 8.3+支持)
在项目的package.json中添加overrides字段,强制react-collapsed使用项目已安装的React版本:
{ "overrides": { "react-collapsed": { "react": "$react" } } }
添加后重新运行npm install,再提交代码到Amplify构建即可。
内容的提问来源于stack exchange,提问作者Patrik Sivak
相关产品推荐
相关产品推荐

