首页 > 解决方案 > React - 从 17.0.1 更新到 17.0.2 时出错

问题描述

从 React 17.0.1 更新到 17.0.2 时出现以下错误。我并不完全清楚为什么依赖关系会导致问题。我正在使用 npm v 7.4。

似乎有些依赖与react 17不兼容。我理解正确吗?但是 npm 显示例如

npm ERR!   peer react-dom@"^15.0.0 || ^16.0.0 || ^17.0.0" from react-calendly@2.0.0
npm ERR!   node_modules/react-calendly

如果我认为正确,React 17 应该可以工作。

有人可以简单地向我解释一下这个问题吗?有解决方案吗?

错误:

npm install --save react@17.0.2
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! Found: react@17.0.2
npm ERR! node_modules/react
npm ERR!   react@"17.0.2" from the root project
npm ERR!   peer react@"^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" from mini-create-react-context@0.4.1
npm ERR!   node_modules/mini-create-react-context
npm ERR!     mini-create-react-context@"^0.4.0" from react-router@5.2.0
npm ERR!     node_modules/react-router
npm ERR!       react-router@"5.2.0" from react-router-dom@5.2.0
npm ERR!       node_modules/react-router-dom
npm ERR!         react-router-dom@"^5.2.0" from the root project
npm ERR!   7 more (react-calendly, react-icons, react-router, ...)
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer react@"17.0.1" from react-dom@17.0.1
npm ERR! node_modules/react-dom
npm ERR!   peer react-dom@"^15.0.0 || ^16.0.0 || ^17.0.0" from react-calendly@2.0.0
npm ERR!   node_modules/react-calendly
npm ERR!     react-calendly@"^2.0.0" from the root project
npm ERR!   peer react-dom@"^15.5.4 || ^16.0.0 || ^17.0.0" from react-scroll@1.8.2
npm ERR!   node_modules/react-scroll
npm ERR!     react-scroll@"^1.8.2" from the root project
npm ERR!   2 more (styled-components, the root project)
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!

我的依赖:

"emailjs-com": "^2.6.4",
"react": "^17.0.1",
"react-calendly": "^2.0.0",
"react-dom": "^17.0.1",
"react-icons": "^4.2.0",
"react-router-dom": "^5.2.0",
"react-router-scroll-top": "^0.2.1",
"react-scripts": "^4.0.3",
"react-scroll": "^1.8.2",
"styled-components": "^5.3.0",
"swiper": "^6.5.0"

我不明白,为什么 17.0.0 应该工作,但 17.0.2 不行。

谢谢你的帮助。

标签: reactjs

解决方案


您有依赖冲突,这将产生此问题。

我建议使用--forceor解决--legacy-peer-deps

所以尝试:

npm install --save react@17.0.2 --force

或者

npm install --save react@17.0.2 --legacy-peer-deps

问题原因:

存在依赖冲突,这意味着依赖与其他或类似的东西不兼容,这会产生这个问题。


推荐阅读