我遇到了一个问题,了解如何为react
分配满足其对等(react-native
和react-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.1
,15.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
这样的文件比较新,希望这是一个简单的解决方案,但我尝试的所有内容都是空的。
答案 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与您的应用进行比较。