React / React-DOM 包依赖冲突

     2023-02-22     287

关键词:

【中文标题】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 安装,但这似乎没有奏效。我没有花很多时间处理这些类型的错误,以了解控制台要求我修复的确切内容对我来说有点陌生。究竟是什么问题,我该如何解决,以及如何阻止这种情况在未来发生?

【问题讨论】:

简而言之:reactreact-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是什么?

...网页的话,我们难免会下载两个包,一个是react,一个是react-dom,其中react是react的核心代码。react的核心思想是虚拟Dom,其实虚拟Dom改变没有那么复杂,简单而言就是一个js的对象来表达一个dom包含的东西,例如如下代码:"tagName... 查看详情

react和react-dom的区别,两者都有render函数,这两个函数有什么不一样

为什么react和react-dom要分成两个包?参考地址:https://www.zhihu.com/question/336664883知乎的另一个回答截图react提供组件,生命周期功能,reactdom提供dom功能 查看详情

react

...mail protected]:ruanyf/react-demos.git引用的三个库:react.js、react-dom.js和Browser.js,他们必须首先加载,react.js是React的核心库,react-dom.js 查看详情

Dart 包:依赖冲突

】Dart包:依赖冲突【英文标题】:DartPackages:Dependencyconflicts【发布时间】:2020-04-2006:13:16【问题描述】:在Dart/Flutter项目中,我有dependencies:graphql:\'^2.1.1-beta.5\'flutter_bloc:^3.0.0作为依赖项。但是,graphql依赖于rxdart:^0.22.0和flutter_bloc... 查看详情

react怎么在render里面写style

...不同环境下更快、更容易构建。于是把react分成了react和react-dom两个部分。这样就为web版的react和移动端的ReactNative共享组件铺平了道路。也就是说我们可以跨使用相同的react组件。新的react包包含了React.createElement,.createClass,ponen... 查看详情

maven依赖jar包版本冲突解决方案

1、为何会产生依赖冲突 Maven中的传递性依赖机制,一方面简化了依赖声明,另一方面如果传递依赖有可能引发版本冲突。例如:有这样的依赖关系:a->b->c->x(1.0)、a->d->x(2.0),对于这样的冲突Maven给出的方案是:第... 查看详情

yum解决重复包,依赖冲突问题

https://blog.csdn.net/u012908433/article/details/80254343 查看详情

maven怎么处理引用的jar版本冲突

...的jar包名称。通常可以在eclipse中查找冲突的类有在哪些依赖包里面出现了。并确定实际要使用的是那个包,冲突的包有哪些。2.通过mvndependency:tree>tree.txt导出全部的依赖。3.在导出的依赖文件中,查找问题相关的jar。确定这些j... 查看详情

无法解析模块“react-dom”

】无法解析模块“react-dom”【英文标题】:Cannotresolvemodule\'react-dom\'【发布时间】:2017-07-2307:31:53【问题描述】:我见过很少有与此类错误相关的帖子。但我无法解决。我的package.json:"react":"~0.14.7","webpack":"^1.12.13","react-hot-loader":... 查看详情

如何处理第三方组件依赖与 react native 或其他组件冲突?

】如何处理第三方组件依赖与reactnative或其他组件冲突?【英文标题】:Howtodealwiththethirdpartycomponentdependenciesconflictwithreactnativeorothercomponent?【发布时间】:2016-03-2018:26:40【问题描述】:现在我正在用reactnative0.13.2编写一个android应... 查看详情

react-dom 17.0.0更新错误TypeError:init不是函数

】react-dom17.0.0更新错误TypeError:init不是函数【英文标题】:react-dom17.0.0updateerrorTypeError:initisnotafunction【发布时间】:2021-02-0403:55:08【问题描述】:在我的CRA中将react-dom从16.3更新到17.0.0,升级react-dom后出现以下错误。到目前为止... 查看详情

React 和 React-Dom 版本应该匹配吗?

】React和React-Dom版本应该匹配吗?【英文标题】:ReactandReact-Domversionsshouldmatch?【发布时间】:2017-01-1300:04:40【问题描述】:React和React-Dom必须是同一个版本吗?我们应用中的示例:反应v15.0.2,React-Domv15.3.1直到最近,我们的应用... 查看详情

react antd 大型生产包

...lib/...\'这些是我的导入:importReactfrom"react";importReactDOMfrom"react-dom";importTreeSe 查看详情

mbstring Ubuntu 14.04 依赖包冲突

】mbstringUbuntu14.04依赖包冲突【英文标题】:mbstringUbuntu14.04dependencypackageconflict【发布时间】:2020-01-2304:47:28【问题描述】:我正在尝试在我的Ubuntu14.04机器上安装PHPmbstring模块。我使用“sudoapt-get-finstallphp7.0-mbstring”来安装模块。... 查看详情

Anaconda 中的依赖项和包冲突?

】Anaconda中的依赖项和包冲突?【英文标题】:DependenciesandpackagesconflictsinAnaconda?【发布时间】:2018-08-2816:15:15【问题描述】:我在Windows10机器上使用Anaconda5.1和Python3.6。我遇到了很多问题;我尝试在我的conda环境中添加一些有用... 查看详情

intellijidea查找依赖关系,解决jar包冲突

maven工程,一个artifact的jar包可能不只一处被依赖;有时候依赖会出现相同的artifact却不同版本,相互存在冲突,这时就需要exclude某个版本。 试了在命令行工程目录下执行mvndependency:tree可以出来文本的依赖关系... 查看详情

如何删除maven中冲突的jar包

首先在自己的pom中,人为不可能引入两个版本不同的依赖。冲突最可能的就是你依赖的依赖可能产生了冲突。比如A依赖版本为2.0的C,B依赖版本为3.0的C。在你的pom中,你同时依赖了A和B,这时就会产生冲突。这时候你就要判断,... 查看详情

如何快速的解决maven依赖冲突

首先要说明Maven的依赖管理,具体的可以参考这边Maven学习——依赖管理这篇文章,maven在依赖冲管理中有一下几个原则。依赖是使用Maven坐标来定位的,而Maven坐标主要由GAV(groupId,artifactId,version)构成。如果两个相同的依赖包,... 查看详情