当我在当前的React项目上运行npm i
时,收到关于react peerDependency的以下警告:
npm WARN react-tap-event-plugin@3.0.3 requires a peer of react@^16.0.0-0 < 16.4.0 but none is installed. You must install peer dependencies yourself.
npm WARN react-paginate@4.4.4 requires a peer of react@^15.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN formsy-react@0.19.5 requires a peer of react@^0.14.0 || ^15.0.0 but none is installed. You must install peer dependencies yourself.
在我的package.json中,我正在使用最新版本的react:
"react": "^16.7.0"
我是node和npm的新手。我想知道安装npm peerDependencies的良好做法是什么:
1。)如果在package.json中已经指定了更新版本,可以忽略较低版本的警告。
2。)按照 https://lexi-lambda.github.io/blog/2016/08/24/understanding-the-npm-dependency-model/ 和 https://github.com/npm/npm/issues/6565
npm提供了依赖关系隔离,并且peerDepencies需要手动安装,因此我应该安装所有3个版本的react,但我担心这会破坏导入语句。
3。)如果以上两个都不是,那么我应该在package.json中使用哪个版本。 P.S。我的package.json中还有更多依赖项,可能还需要最新版本。
答案 0 :(得分:5)
进一步了解Danyal的答案,您可以升级Forms-react并删除react-tap-event-plugin:
答案 1 :(得分:2)
对等依赖项意味着一个软件包适用于特定版本的依赖项,并且如果超出指定版本,则该软件包将无法按预期工作。
在您的情况下,react-tap-event-plugin@3.0.3
需要的React版本低于16.4.0,react-paginate@4.4.4
需要的任何React 15版本都与formsy-react@0.19.5
相同。
您需要从React 16.7.0降级,但是如果您使用的是16.7.0功能,这可能会破坏您的应用程序,或者您可以删除软件包并使用另一个软件包,或者从头开始编写软件包的逻辑。
提示:在实际考虑为项目使用软件包之前,请务必确保先阅读npm网站上的软件包依赖项。