刚遇到这个错误:
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: nexttwin@0.1.0
npm ERR! Found: react@17.0.1
npm ERR! node_modules/react
npm ERR! react@"17.0.1" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^16.8.0" from react-hook-mousetrap@2.0.4
npm ERR! node_modules/react-hook-mousetrap
npm ERR! react-hook-mousetrap@"*" from the root project
npm ERR!
我尝试安装的模块似乎与我安装的模块具有不同的对等依赖性。似乎 npm 在这方面改变了它的行为,现在让安装失败。
我现在该怎么做才能解决这个问题?我不想为此降级我的 React 版本。
我知道有一个名为 --legacy-peer-deps
的标志,但我不确定这到底是做什么的,是否建议使用它/潜在的缺点是什么?我假设 npm 确实让安装失败是有原因的。
这很奇怪,因为我一直在使用 yarn
直到最近,一切都很好。
原文由 antonwilhelm 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是我解决这个问题的方法:
首先,发生了什么: react-hook-mousetrap 正在寻找 react@16.8.0,但没有找到。相反,它正在寻找 @react17.0.1,这是一个较新的版本。由于某些原因,捕鼠器不喜欢这个较新的版本,并且您会收到通知(这不是什么大问题,但他们认为值得停止您的构建)。
一种解决方案: 强行安装mousetrap想要的特定版本的 反应:
这样做是将您的反应版本回滚到与捕鼠器兼容的稍旧版本。您不会注意到任何差异,并且在未来的迭代中,希望捕鼠器得到更新,所以它会消失。
另一个解决方案: 彻底决定不安装任何旧版本依赖项:
这样做是忽略这个包的旧依赖项。它更全面,可以为您做出很多决定。