javascript - 从长远来看,使用“--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安装,它被安装了。所以,现在我想知道如果我使用这些标志安装我的依赖项,它会长期运行吗?
解决方案
我不认为这会有害,但我不能告诉你这是一个事实。
我能做的是告诉我如何解决我遇到的类似问题。
我假设您使用的是 npm 版本 7.XX(您可以检查它npm --version
如果确实如此,则几乎在您尝试安装的每个依赖项上都会显示此错误,所以我所做的就是降级回 npm 6。
为此,您需要做的就是在命令行中运行以下命令:
npm install -g npm@6.14.13
推荐阅读
- html - css - 剪辑图像并添加边框以适合 div
- visual-studio-code - Xdebug 3.0 WSL2 和 VSCode - 有效的配置
- redis - 即使值存在,redis get 也返回 null
- javascript - 为什么日期比较 javascript 功能不起作用?
- javascript - 如何使用带有 Vue 的 HTML 5 验证添加错误消息
- docker - Docker以非交互方式设置用户密码
- c# - C# - 将 JSON 存储到 MySQL 数据库中
- c# - 如何截断引号中的文本字符串并保留引号?
- android - TypeError:null 不是对象(评估“I.setDebugLogsEnabled”)
- node.js - 设置 Node.JS express HTTPS 服务器失败并使用自签名密钥命令