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 时出错 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
将项目中的componentWillReceiveProps切换到getDerivedStateFromProps
模块解析失败:带有 Storybook 6.1.11、Webpack 5.11.0、React 17.0.1 的意外字符“@”(1:0)
将 react-router 和 react-router-relay 从 v1.x 更新到 v2.x(位置“/”不匹配任何路由)