4

我正在通过阅读Fullstack React 书来学习 React 。


我的设置:

node -v
v14.15.3
npm -v
7.3.0

按照我运行的styleguidist 安装指南:

npm -i -D webpack react-styleguidist

这个安装:

  • webpack v5.11.0
  • react-styleguidist 11.1.5

之间似乎存在某种冲突:

这似乎归结为 React 16 基线上的 react-simple-code-editor 中的对等依赖性,而 react-styleguidist 使用 React 17。

react-simple-code-editorpackage.json

....
"peerDependencies": {
  "react": "^16.0.0",
  "react-dom": "^16.0.0"
}

我在这里提出了这个问题,但从未收到回复。

所以我想知道这里是否有人对 React 16 到 17 的增强有更深入的了解可以回答 react-simple-code-editor 中的 react/react-dom 是否可以放宽以使用 16+?如果是这样,语法是什么?

更多关于 Peer Dependencies的信息在这里

4

2 回答 2

1

React Styleguidist 的对等依赖项为"react": ">=16.8". 我假设在安装 react-styleguidist 之前,您运行了npm install --save-dev react,并且安装了 react@17.x。

你有两个选择:

  1. 降级到 React@16.x

    查看更新日志摘要博客文章中的更新。如果您没有看到任何必要的更改并且更关心冲突,请降级以解决对等依赖问题。

  2. 无论如何安装对等依赖项

    npm 7.x对对等依赖问题有更严格的错误处理,我能够npm 6.x在 React@17 应用程序中毫无问题地安装这些包,但我的同事遇到了同样的问题,并且能够使用npm install --force. 运行它,它应该可以正常工作。我还没有遇到任何问题,并且很高兴地忽略了我的 npm 版本上的警告。

于 2021-02-12T02:06:47.390 回答
0

该问题是由 npm 7令人兴奋的新功能引起的,该功能会自动安装对等依赖项。这导致同时安装了 React 16 和 React 17,这使得一切都爆炸了。

幸运的是,您可以通过以下方式选择退出新功能:

npm install --legacy-peer-deps

它不那么令人兴奋,但从好的方面来说它是有效的。

于 2021-04-21T09:21:56.187 回答