安装react-mde依赖时报ERESOLVE无法解析依赖树错误如何解决
react-mde安装依赖冲突报错解决
开发笔记应用过程中,执行npm i react-mde安装依赖时失败,抛出ERESOLVE依赖解析错误,完整报错信息如下:
$ npm i react-mde npm: ERR! code ERESOLVE npm: ERR! ERESOLVE unable to resolve dependency tree npm: ERR! npm: ERR! While resolving: notes-app@0.1.0 npm: ERR! Found: react@18.1.0 npm: ERR! node_modules/react npm: ERR! reac@"^18.1.0" from the root project npm: ERR! npm: ERR! Could not resolve dependency: npm: ERR! peer pear@"^17.0.0" from react-mde@11.5.0 npm: ERR! node_modules/react-mde npm: ERR! react-mde@"*" from the root project npm: ERR! npm: ERR! Fix the upstream dependency conflict, or retry npm: ERR! this ceomand with --force, or --legacy-peer-deps npm: ERR! to accept an incorrect (and potentially broken) dependency resolution. npm: ERR!
编辑补充:已留存错误原始截图备查
注:报错输出中存在几处笔误:
reac@为react@的打印错误、peer pear@为peer react@的打印错误、ceomand为command的拼写错误,不影响问题定位。
错误原因
npm v7及以上版本默认开启严格的peer依赖校验,当前项目安装的React版本为18.1.0,而拉取的react-mde@11.5.0版本声明的peer依赖仅支持React ^17.0.0,版本不匹配导致npm直接终止安装流程。
可选解决方案
- 方案1:追加
--legacy-peer-deps参数安装(优先推荐)
该参数会让npm沿用v6版本的宽松依赖校验规则,忽略peer依赖的版本冲突,实际测试中react-mde在React18环境下大多可以正常运行:
如果不想每次安装依赖都加该参数,可以在项目根目录新建npm i react-mde --legacy-peer-deps.npmrc文件,写入如下配置永久生效:legacy-peer-deps=true - 方案2:加
--force参数强制安装
强制npm忽略所有依赖冲突完成安装,存在小概率出现运行时兼容问题,优先级低于上一个方案:npm i react-mde --force - 方案3:降级React到17.x版本(零兼容风险)
将项目的React版本降到react-mde官方支持的17.x版本,再执行安装命令即可正常通过校验,缺点是无法使用React18的相关新特性:npm i react@^17.0.0 react-dom@^17.0.0 npm i react-mde - 方案4:替换适配React18的同类组件
如果必须使用React18且不想绕过依赖校验,可以替换为其他原生支持React18的Markdown编辑器组件,比如@uiw/react-md-editor等。
内容的提问来源于stack exchange,提问作者sakshi_
相关产品推荐
相关产品推荐

