我的情况是这样的:
我有一份运作良好的反应原生项目的工作副本。它已经提交到我的git存储库。
我决定将react-native升级到0.26.3然后再升级到0.28,最终导致一个大的依赖混乱与冲突。因此决定回到以前的工作版本。恢复了变化。从我的工作目录中删除了node_modules文件夹。
但现在npm install
刚刚开始工作。
我在package.json
中的工作依赖项 "dependencies": {
"immutable": "^3.8.1",
"key-mirror": "^1.0.1",
"react": "^15.0.2",
"react-native": "^0.26.0",
"react-native-router-flux": "^3.26.1",
"react-redux": "^4.4.5",
"redux": "^3.5.2",
"redux-thunk": "^2.1.0",
"strformat": "0.0.7"
},
"devDependencies": {
"babel-core": "^6.10.4",
"babel-jest": "^12.1.0",
"babel-preset-es2015": "^6.9.0",
"babel-preset-react-native": "^1.9.0",
"babel-register": "^6.9.0",
"chai": "^3.5.0",
"fetch-mock": "^4.5.4",
"jest-cli": "^12.1.1",
"mocha": "^2.5.3",
"mockery": "^1.7.0",
"nock": "^8.0.0",
"redux-mock-store": "^1.1.1",
"sinon": "^1.17.4",
"sinon-chai": "^2.8.0",
"sinon-stub-promise": "^2.0.0"
}
现在我
npm ERR! peerinvalid The package react@15.1.0 does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer react-native@0.26.3 wants react@15.0.2
npm ERR! peerinvalid Peer react-redux@4.4.5 wants react@^0.14.0 || ^15.0.0-0
这对我来说没有意义,因为我的反应依赖是15.0.2和react-native 0.26.0,你可以在package.json中看到。
请注意,这是来自之前正在进行的提交(整个批次)。
我也做了npm ls
。奇怪的错误依赖关系在树中显示为react-native
,react-native-router-flux
,react
的错误版本。
答案 0 :(得分:14)
对于现有项目,如果要安装/降级到较低版本
npm install react-native@x.x.x ex: npm install react-native@0.43.4
这将安装指定的版本。
检查已安装的版本react-native -version
答案 1 :(得分:7)
请将package.json中的react
依赖项更新为15.0.2
,而不是^15.0.2
,因为后者会解析为导致此问题的15.1.0
。建议将其保留,直到您下次升级并再次出现此错误(以避免在此期间react
更改其版本并且react-native
尚未准备好它。)
此外,npm3 EPEERINVALID
不再是错误,而是警告。
答案 2 :(得分:5)
跑步
ArrayList<String> contryList=new ArrayList<String>();
contryList.add("India");
contryList.add("United States");
contryList.add("Other");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, contryList);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(dataAdapter);
将npm install react-native@0.43.8
替换为您需要的版本。
答案 3 :(得分:3)
再次尝试npm prune
然后npm i
。
命令npm prune
基本上会删除所有不需要的软件包,npm i
将确保安装所有丢失的软件包。
答案 4 :(得分:1)
降级React Native需要手动步骤。我建议使用RN-DIFF回购https://github.com/ncuillery/rn-diff。这是我的步骤
react-native
和react
与RN-DIFF中的相同版本匹配> package.json。 here's an example yarn install
注意:如果您要降级多个次要版本。例如,从0.56.0降到0.54.4,则应一次降级一个版本。首先降级到0.55.4版本,测试它是否可以在iOS和Android上运行,然后继续降级到更低版本
答案 5 :(得分:0)
如果您正在使用react-native,您可以使用所需的版本修改package.json文件,然后删除所有节点模块rm -rf node_modules,然后重新安装npm install
答案 6 :(得分:0)
如果您在Package.json
中更改版本并重新安装npm packages
,则会出现构建错误。请refer并降级/升级到特定版本。