首页 > 解决方案 > 从长远来看,使用“--force”或“--legacy-peer-deps”会有害吗?

问题描述

我目前正在开发一个 react-native 项目,并希望安装本地库,但出现以下错误...

npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: demo@0.0.1
npm ERR! Found: react@17.0.2
npm ERR! node_modules/react
npm ERR!   react@"^17.0.1" from the root project
npm ERR!   peer react@"*" from native-base@3.0.6
npm ERR!   node_modules/native-base
npm ERR!     native-base@"3.0.6" from the root project
npm ERR!   1 more (react-dom)
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer react@"17.0.1" from react-native@0.64.2
npm ERR! node_modules/react-native
PS C:\Users\Bishal Ghosh\Desktop\React-Native\demo> npm install native-base --save
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: demo@0.0.1
npm ERR! Found: react@17.0.2
npm ERR! node_modules/react
npm ERR!   react@"^17.0.1" from the root project
npm ERR!   peer react@"*" from native-base@3.0.6
npm ERR!   node_modules/native-base
npm ERR!     native-base@"*" from the root project
npm ERR!   1 more (react-dom)
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer react@"17.0.1" from react-native@0.64.2
npm ERR! node_modules/react-native
npm ERR!   react-native@"^0.64.2" from the root project
npm ERR!   peer react-native@"*" from native-base@3.0.6
npm ERR!   node_modules/native-base
npm ERR!     native-base@"*" 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.
npm ERR!
npm ERR! See C:\Users\Bishal Ghosh\AppData\Local\npm-cache\eresolve-report.txt for a full report.
npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Bishal Ghosh\AppData\Local\npm-cache\_logs\2021-08-02T06_48_53_257Z-debug.log

我尝试通过删除我的 node_modules 文件夹来解决这个问题,但没有奏效。然后,我使用--legacy-peer-deps安装,它被安装了。所以,现在我想知道如果我使用这些标志安装我的依赖项,它会长期运行吗?

标签: javascriptreactjsreact-nativenpm

解决方案


我不认为这会有害,但我不能告诉你这是一个事实。
我能做的是告诉我如何解决我遇到的类似问题。

我假设您使用的是 npm 版本 7.XX(您可以检查它npm --version
如果确实如此,则几乎在您尝试安装的每个依赖项上都会显示此错误,所以我所做的就是降级回 npm 6。

为此,您需要做的就是在命令行中运行以下命令:

npm install -g npm@6.14.13

推荐阅读