UNMET PEER DEPENDENCY做出反应

lea*_*ner 5 javascript node.js npm

我有与反应有关的javascript问题.这是页面渲染时chrome捕获的错误:

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)
Run Code Online (Sandbox Code Playgroud)

当我使用npm安装我的反应时,它会抱怨react和react-height的对等依赖关系:

??? 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 
...
Run Code Online (Sandbox Code Playgroud)

和:

??? UNMET PEER DEPENDENCY react-height@2.2.1
? ??? create-react-class@15.5.2 
?   ??? fbjs@0.8.12 
?     ??? core-js@1.2.7 
Run Code Online (Sandbox Code Playgroud)

之后我将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",
...
Run Code Online (Sandbox Code Playgroud)

在这些更改后,我删除了完全node_modules文件夹,rm -rf并删除了npm缓存并重新安装.

非常相同的问题继续发生.我注意到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.
Run Code Online (Sandbox Code Playgroud)

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

loe*_*onk 5

您的react版本不符合react-collapse要求。这并不是说这两个软件包不能一起工作,只是尝试一下,如果一切都按预期进行,就可以尝试。

但是,如果您需要解决此问题,则有两种方法可以解决:

第一种方式

删除"react": "0.14.9",行,然后运行npm i --save react。NPM将安装最新的react软件包。错误应该得到解决。


第二种方式

如果您确实需要使用0.14.9版本,则应该找到react-collapse与您的reactjs版本兼容的版本。

为此,请在控制台中键入npm show react-collapse versions- array将会显示一个记录。

现在,我们必须选择一个较早的版本并检查peerDependencies 所选软件包的。

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

在此处输入图片说明

因为我们选择的@3.0.0版本适合我们的情况,所以我们需要安装它。遵循以下命令即可完成工作npm install --save react-collapse@3.0.0

更新

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

说明:

检查您的npm版本npm -v。如果您的版本> 3,则意味着必须手动安装对等依赖项。我想是这种情况,2015年中期发布了3.0.0版。

npm 3明确删除了对等依赖项的自动安装,因为它引起的问题比它试图解决的更多。

请阅读官方的npm changelog,您正在寻找“重大更改”部分。

有一个CLI工具可以自动安装NPM软件包及其对等项。您可能感兴趣。