反应路由器 peerDependencies 错误

Posted

技术标签:

【中文标题】反应路由器 peerDependencies 错误【英文标题】:react-router peerDependencies error 【发布时间】:2016-01-04 06:53:52 【问题描述】:

我正在尝试安装 react-router,但出现以下错误。

$ npm install react-router
npm WARN peerDependencies The peer dependency react@0.13.x included from react-router will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
npm ERR! Windows_NT 6.3.9600
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "react-router"
npm ERR! node v0.12.7
npm ERR! npm  v2.11.3
npm ERR! code EPEERINVALID

npm ERR! peerinvalid The package react does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer react-addons-test-utils@0.14.0-rc1 wants react@^0.14.0-rc1
npm ERR! peerinvalid Peer react-router@0.13.4 wants react@0.13.x
npm ERR! peerinvalid Peer react-bootstrap@0.25.2 wants react@>=0.13

npm ERR! Please include the following file with any support request:
npm ERR!     C:\ReactApps\good start\npm-debug.log

node-modulesreact 的 package.json 显示我使用的是:

"version": "0.14.0-rc1",

我应该安装较早的版本吗?似乎 0.13.x 可能是支持更好的版本?

如果是这样,我怎样才能安装而不弄乱我当前的项目?


使用后

npm install npm -g

我输入了npm -v,发现我项目中的版本还是2.11.13。 我想它可能是 NPM 的本地版本,所以我输入:

npm install npm

希望在本地更新最新版本,但当我检查版本时仍然得到 2.11.13。

comp-asus XXX64 /c/ReactApps/goodRouter/goodrouter (master)
$ npm -v
2.11.3

comp-asus XXX64 /c/ReactApps/goodRouter/goodrouter (master)
$ npm install react-router
npm WARN peerDependencies The peer dependency react@0.13.x included from react-router will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
npm ERR! Windows_NT 6.3.9600
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "react-router"
npm ERR! node v0.12.7
npm ERR! npm  v2.11.3
npm ERR! code EPEERINVALID

npm ERR! peerinvalid The package react does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer react-router@0.13.4 wants react@0.13.x

npm ERR! Please include the following file with any support request:
npm ERR!     C:\ReactApps\goodRouter\goodrouter\npm-debug.log

在全局检查时,我可以看到它已更新:

$ npm list -g --depth=0
C:\Users\Roger\AppData\Roaming\npm

    ├── babel-eslint@4.1.3
    ├── bower@1.5.2
    ├── eslint@1.5.1
    ├── findup-sync@0.2.1
    ├── generator-angular@0.12.1
    ├── generator-karma@1.0.0
    ├── generator-meanjs@0.1.12
    ├── generator-polymer@1.1.0
    ├── generator-react-boilerplate@0.1.9
    ├── generator-react-webpack@1.2.12
    ├── grunt-cli@0.1.13
    ├── gulp@3.9.0
    ├── httpster@1.0.1
    ├── jspm@0.16.10
    ├── jsxhint@0.15.1
    ├── live-server@0.8.1
    ├── mean-cli@0.10.14
    ├── mocha@2.2.5
    ├── node-gyp@2.0.2
    ├── npm@3.3.5
    ├── react-tools@0.13.3
    ├── superstatic@2.2.1
    ├── tsd@0.6.4
    ├── typescript@1.7.0-dev.20150921 invalid
    ├── webpack@1.12.2
    └── yo@1.4.7

但是如何在项目中使用全局版本呢?

所以问题仍然存在,但我相信你让我走上了正确的轨道。


$ where npm
C:\Program Files\nodejs\npm
C:\Program Files\nodejs\npm.cmd
C:\Users\Roger\AppData\Roaming\npm\npm
C:\Users\Roger\AppData\Roaming\npm\npm.cmd

所以我应该删除其中一个?

【问题讨论】:

【参考方案1】:

这是npm@3 中解决的主要问题之一。详情请见https://github.com/npm/npm/issues/6565。

更新npm 是正确的做法:

$ npm install npm -g

【讨论】:

谢谢!如果可以,请查看更新。我没有足够的代表 +1,但我非常感谢。 @RogerDore 你是否在使用一些工具来管理 Node 版本,比如nvm 我不熟悉管理节点版本的工具。我现在就去查找 nvm。 @RogerDore 不,我不是那个意思……在你的$PATHnvm 中还有另一个npm 可以是它的来源,所以我问了。您需要禁用另一个npm(移动它或使其不可执行)。 @RogerDore 你能用where npm 或***.com/questions/304319 的其他建议找到那个位置吗?

以上是关于反应路由器 peerDependencies 错误的主要内容,如果未能解决你的问题,请参考以下文章

意外的 NPM PeerDependency 错误

如何解决对等依赖错误:包 react@15.3.2 不满足其兄弟的 peerDependencies 要求

刷新反应应用程序,404 错误。反应路由器问题

反应路由器链接打字稿错误

反应路由器+打字稿类型错误

反应路由器组件中出现意外的令牌<错误