React项目执行npm i react-spline出现ERESOLVE依赖报错如何解决
报错原因
执行安装时抛出ERESOLVE unable to resolve dependency tree错误,是npm 7及以上版本默认开启严格peer依赖校验导致的:
- 你的项目当前使用的React版本为
18.2.0 - 你尝试安装的
react-spline@1.2.1版本声明的peer依赖仅适配react@^16.0.0,两者版本范围不匹配,npm会默认阻止存在冲突的依赖安装操作。
可落地的解决方法
按推荐优先级从高到低选择即可:
方案1:安装官方适配React 18的正式维护版本
旧的react-spline包已经停止维护,官方后续的版本都迁移到了新的作用域包下,原生支持React 17/18,不存在依赖冲突,直接执行以下命令安装:
npm i @splinetool/react-spline
这是最推荐的方案,后续所有功能更新、bug修复都会在新包上发布,不会出现隐性的兼容性问题。
方案2:跳过依赖校验安装旧版本包
如果你因为项目原因必须使用旧的react-spline包,可以在安装命令后追加--legacy-peer-deps参数,让npm忽略peer依赖的版本校验完成安装:
npm i react-spline --legacy-peer-deps
如果不想每次安装依赖都手动加这个参数,可以在项目根目录新建.npmrc文件,写入如下配置永久生效:
legacy-peer-deps=true
注意:该方案属于跳过校验强制安装,旧版react-spline没有做React 18的适配,实际运行过程中可能出现组件渲染异常、钩子报错等兼容性问题,需要自行测试业务相关功能是否正常。
不推荐的方式
不要使用--force参数强制安装,该参数会跳过所有依赖校验逻辑,甚至会覆盖项目中已经安装的存在版本冲突的依赖,很容易破坏整体依赖结构,后续排查问题的成本极高。
内容的提问来源于stack exchange,提问作者Manish kumar
相关产品推荐
相关产品推荐

