NPM安装期间的依赖问题

时间:2017-03-20 19:19:28

标签: reactjs npm react-native react-redux npm-install

我遇到了一个问题,了解如何为react分配满足其对等(react-nativereact-redux)依赖关系的有效版本。这是我的package.json

...
"dependencies": {
  "react": "^15.3.2",
  "react-native": "0.35.0"
  "react-redux": "4.4.5",
  "redux": "3.6.0",
}

此项目的初始开发工作(约2个月前)在npm install期间没有问题,但是将此repo克隆到新环境并运行npm install会产生以下问题:

npm WARN peerDependencies The peer dependency react@~15.3.1 included from react-native 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! node v4.4.7
npm ERR! npm  v2.15.8
npm ERR! code EPEERINVALID

npm ERR! peerinvalid The package react@15.4.2 does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer react-native@0.35.0 wants react@~15.3.1
npm ERR! peerinvalid Peer react-redux@4.4.5 wants react@^0.14.0 || ^15.0.0-0

似乎正在尝试安装react@15.4.2,这是2017年3月20日的最新版本,并且就我理解^ semver规范而言是正确的。

我已尝试指定版本15.3.115.3.2^15.3.1^15.3.2~15.3.1等,但无论我输入什么,问题依然存在。

还查看了https://github.com/facebook/react-native/blob/0.35-stable/package.json上的文件:

"peerDependencies": {
  "react": "~15.3.1"
},

https://github.com/reactjs/react-redux/blob/4.x/package.json

"peerDependencies": {
  "react": "^0.14.0 || ^15.0.0-0 || ^15.4.0-0",
  "redux": "^2.0.0 || ^3.0.0"
},

我对package.json这样的文件比较新,希望这是一个简单的解决方案,但我尝试的所有内容都是空的。

2 个答案:

答案 0 :(得分:1)

react-native@0.35.0需要15.3.x的反应版本,它与反应15.4不兼容。

将您的依赖关系中的"react": "^15.3.2"更改为"react": "~15.3.2"并进行新的npm install可以解决您的问题。

答案 1 :(得分:0)

可能值得尝试重新安装这些依赖项,并希望为所有内容安装的当前版本匹配。

换句话说,从package.json中删除这些行,使用rm -rf node_modules删除模块,然后转到npm i --save react react-native redux react-redux

或者,结帐https://github.com/react-community/create-react-native-app并创建一个新应用并将package.json与您的应用进行比较。