UNMET PEER DEPENDENCY与反应

我有JavaScript的问题相关的反应。 这是页面渲染时由铬引起的错误:

Uncaught TypeError: Super expression must either be null or a function, not undefined at _inherits (application.js:16301) at application.js:16310 at Object.232.prop-types (application.js:16549) at s (application.js:1) at application.js:1 at Object.233../Collapse (application.js:16574) at s (application.js:1) at application.js:1 at Object.1.react (application.js:78) at s (application.js:1) 

当我使用npm安装我的反应时,它会抱怨反应和反应高度的对等关系:

 ├─┬ UNMET PEER DEPENDENCY react@0.14.9 │ ├─┬ envify@3.4.1 │ │ └─┬ jstransform@11.0.3 │ │ ├── base62@1.1.2 │ │ ├─┬ commoner@0.10.8 │ │ │ ├─┬ commander@2.9.0 ... 

和:

 ├─┬ UNMET PEER DEPENDENCY react-height@2.2.1 │ └─┬ create-react-class@15.5.2 │ └─┬ fbjs@0.8.12 │ └── core-js@1.2.7 

之后,我将我的package.json文件更改为:

 "react": "0.14.9", "react-bootstrap": "^0.28.1", "react-collapse": "^2.2.1", "react-dom": "^0.14.3", "react-height": "2.2.1", ... 

完成这些更改后,我使用rm -rf完全删除了node_modules文件夹,并清理了npmcaching,然后重新安装。

非常类似的问题继续发生。 我注意到2个警告:

 npm WARN react-collapse@2.4.0 requires a peer of react@>=15.3 but none was installed. npm WARN react-collapse@2.4.0 requires a peer of react-height@^3 but none was installed. 

更新软件包或与自身反应相关的问题是否有问题?

你的react版本不符合react-collapse要求。 这并不意味着这两个软件包不能一起工作,只是尝试一下,如果一切按预期工作。

但是,如果你需要解决这个问题,你有两种方法:

第一种方式

删除"react": "0.14.9",行,并运行npm i --save react 。 NPM将安装最新的反应包。 错误应该被修复。


第二种方式

如果你真的需要使用0.14.9版本,你应该find与你的reactjs版本兼容的react-collapse版本。

要这样做,在你的控制台inputnpm show react-collapse versions – 将显示一个loggingarray

现在我们必须select一个早期的版本,并检查我们select的软件包的peerDependencies

我们使用npm view react-collapse@3.0.0命令,结果会是

在这里输入图像描述

因为我们select了@3.0.0版本,在我们的情况下,我们需要安装它。 以下命令将执行npm install --save react-collapse@3.0.0的工作。

UPDATE

如果上述解决scheme不起作用。 请通过npm i --save <package-name>手动安装缺less的peerDependencies npm i --save <package-name>

阐释:

检查你的npm版本是否是npm -v 。 如果您的版本大于3,则意味着必须手动安装对等方依赖关系。 我想是的,3.0.0版本是在2015年中期发布的。

npm 3明确地删除了对等关系的自动安装,因为它导致了比试图解决的更多的问题。

请阅读官方npm更新日志 ,您正在寻找“突破性变化”部分。

有一个CLI工具可以自动安装一个NPM包及其对等的依赖关系。 你可能会感兴趣。