React - 从 17.0.1 更新到 17.0.2 时出错 [重复]

Posted

技术标签:

【中文标题】React - 从 17.0.1 更新到 17.0.2 时出错 [重复]【英文标题】:React - Error while updating from 17.0.1 to 17.0.2 [duplicate] 【发布时间】:2021-08-01 22:29:16 【问题描述】:

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

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

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 不行。

感谢您的帮助。

【问题讨论】:

由于你使用的是 npm 7,你会在这里找到你的解释:***.com/questions/66239691/… 感谢 Silviu,这对我帮助很大。 【参考方案1】:

你有依赖冲突会造成这个问题。

我建议使用--force--legacy-peer-deps 解决。

那就试试吧:

npm install --save react@17.0.2 --force

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

问题原因:

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

【讨论】:

@kinglycodes 我认为这是解决问题的最佳解决方案。我什至更早地解决了我的项目的问题。否则,这是一个临时解决方案,直到公司创建另一个与 React 一起使用的包。 感谢 Kevin 的解决方案。 @kinglycodes 请点击我的答案旁边的灰色复选标记。

以上是关于React - 从 17.0.1 更新到 17.0.2 时出错 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

React生命周期以及关于17.0版本生命周期的改变

将项目中的componentWillReceiveProps切换到getDerivedStateFromProps

模块解析失败:带有 Storybook 6.1.11、Webpack 5.11.0、React 17.0.1 的意外字符“@”(1:0)

从 React到React Native

将 react-router 和 react-router-relay 从 v1.x 更新到 v2.x(位置“/”不匹配任何路由)

egg.js + react 实战:从 0 到 1 实现记账本小册学习笔记合集(持续更新中)