正确的机制降级反应本地
我的情况是这样的:
我有一个反应本地项目的工作副本,运行良好。 如果它提交到我的git存储库。
我决定将react-native升级到0.26.3,然后是0.28,最后导致一个大的依赖性混乱和碰撞。 所以决定回到以前的工作版本。 恢复了更改。 从我的工作目录中删除了node_modules文件夹。
但是现在npm install
就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,而且反应原生0.26.0,正如你在package.json中看到的那样。
请注意,这是从以前的提交工作(整个)。 我也做了一个npm ls
。 奇怪的错误依赖在树中显示,像react-native
, react-native-router-flux
, react
等的错误版本。
链接到ls输出
请将package.json中的react
依赖项更新为15.0.2
,而不是^15.0.2
因为后者会parsing为导致此问题的15.1.0
。 build议保留这种方式,直到您再次升级并再次出现此错误(以避免同时更改其版本并react-native
没有准备好)。
另外,用npm3 EPEERINVALID
不再是错误,而是警告。
对于现有的项目,如果你想安装/降级到较低的版本
npm install react-native@xxx ex: npm install react-native@0.43.4
这将安装指定的版本。
检查安装的版本react-native -version
尝试npm prune
,然后npm i
再次。
命令npm prune
将基本上删除所有不需要的包, npm i
将确保所有缺less的包安装。
如果使用react-native,则可以使用所需版本修改package.json文件,然后删除所有节点模块rm -rf node_modules,然后重新安装npm install