React / React-DOM 包依赖冲突
Posted
技术标签:
【中文标题】React / React-DOM 包依赖冲突【英文标题】:React / React-DOM package dependency conflict 【发布时间】:2021-02-26 17:01:54 【问题描述】:每次我尝试运行 npm update 时都会遇到此错误消息:
:
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: my-website@0.1.0
npm ERR! Found: react@16.14.0
npm ERR! node_modules/react
npm ERR! react@"^16.8.0" from the root project
npm ERR! peer react@"^16.8.0" from @material-ui/core@4.11.0
npm ERR! node_modules/@material-ui/core
npm ERR! @material-ui/core@"^4.11.0" from the root project
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! react-dom@"^17.0.1" from the root project
当我尝试运行 npm install react-parallax 时,我在控制台中收到此错误消息:
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: my-website@0.1.0
npm ERR! Found: react@16.14.0
npm ERR! node_modules/react
npm ERR! react@"^16.8.0" from the root project
npm ERR! peer react@"16.x.x" from react-parallax@3.1.2
npm ERR! node_modules/react-parallax
npm ERR! react-parallax@"*" from the root project
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! react-dom@"^17.0.1" from 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.
这是我当前的 package.json:
"name": "my-website",
"version": "0.1.0",
"private": true,
"dependencies":
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
"@testing-library/jest-dom": "^5.11.5",
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
"react": "^16.8.0",
"react-dom": "^17.0.1",
"react-router-dom": "^5.2.0",
"react-scripts": "4.0.0",
"web-vitals": "^0.2.4"
,
"scripts":
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
,
"eslintConfig":
"extends": [
"react-app",
"react-app/jest"
]
,
"browserslist":
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
,
"devDependencies":
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.5",
"enzyme-to-json": "^3.6.1"
,
"jest":
"snapshotSerializers": [
"enzyme-to-json/serializer"
],
"collectCoverageFrom": [
"src/**/*.js",
"!src/index.js"
],
"coverageReporters": [
"text"
]
我尝试删除我的 node_modules 文件夹,npm 安装,但这似乎没有奏效。我没有花很多时间处理这些类型的错误,以了解控制台要求我修复的确切内容对我来说有点陌生。究竟是什么问题,我该如何解决,以及如何阻止这种情况在未来发生?
【问题讨论】:
简而言之:react
和 react-dom
的版本必须匹配。
【参考方案1】:
您可以尝试使用npm install --legacy-peer-deps
运行它吗?我认为您正在使用 npm v7 的最新 Beta 版本。
错误消息中也提到了。
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.
您可以查看更多关于测试版的信息here
【讨论】:
【参考方案2】:您可以使用 npm install --legacy-peer-deps 自动解决所有冲突。
【讨论】:
以上是关于React / React-DOM 包依赖冲突的主要内容,如果未能解决你的问题,请参考以下文章