为什么无法安装1.4.0版本的react-router-transition?
报错信息翻译
$ npm install -S react-router-transition@1.4.0 npm ERR! 错误代码 ERESOLVE npm ERR! ERESOLVE 无法解析依赖树 npm ERR! npm ERR! 解析依赖时当前项目为: react-to-do@1.0.0 npm ERR! 已找到依赖: react-router-dom@5.3.0 npm ERR! 依赖路径: node_modules/react-router-dom npm ERR! 你的项目根目录声明依赖的`react-router-dom`版本为 "^5.0.0" npm ERR! npm ERR! 无法解析的依赖项: npm ERR! react-router-transition@1.4.0要求的 peer 依赖`react-router-dom`版本为 "^4.1.1" npm ERR! 依赖路径: node_modules/react-router-transition npm ERR! 你当前要从项目根目录安装的`react-router-transition`版本为 "1.4.0" npm ERR! npm ERR! 你可以修复上游依赖冲突,或者重试命令时添加 --force 或 --legacy-peer-deps 参数 npm ERR! 来接受一个不正确(且可能损坏)的依赖解析结果。 npm ERR! npm ERR! 完整报告可查看: C:\Users\Michał\AppData\Local\npm-cache\eresolve-report.txt npm ERR! 完整运行日志可在以下路径找到: npm ERR! C:\Users\Michał\AppData\Local\npm-cache\_logs\2021-11-30T16_05_54_608Z-debug.log
错误原因
当前你项目中已安装的react-router-dom版本为5.3.0,但react-router-transition@1.4.0仅声明兼容react-router-dom@^4.1.1版本,npm v7及以上版本默认会严格校验 peer 依赖版本匹配度,版本不匹配就会抛出该依赖解析错误。
可行解决方案
- 方案1:临时跳过依赖校验安装(优先推荐,v4版本的
react-router-transition在v5路由环境下通常可正常运行,无破坏性变更)
执行安装命令时追加--legacy-peer-deps参数即可:
该参数只会让npm忽略peer依赖版本不匹配的问题完成安装,不会修改你项目中已有的npm install -S react-router-transition@1.4.0 --legacy-peer-depsreact-router-dom版本。 - 方案2:降级
react-router-dom到4.x版本(适用于需要严格匹配依赖版本、避免潜在运行问题的场景)
先卸载现有版本再安装兼容版本:
降级完成后再执行原来的安装npm uninstall react-router-dom npm install -S react-router-dom@4.1.1react-router-transition的命令即可。 - 方案3:使用
--force参数强制安装(不推荐,可能会覆盖现有依赖文件导致其他依赖异常)
命令如下:npm install -S react-router-transition@1.4.0 --force
内容的提问来源于stack exchange,提问作者FreeMichal
相关产品推荐
相关产品推荐

