正确的机制降级反应本地

我的情况是这样的:

我有一个反应本地项目的工作副本,运行良好。 如果它提交到我的git存储库。

我决定将react-native升级到0.26.3,然后是0.28,最后导致一个大的依赖性混乱和碰撞。 所以决定回到以前的工作版本。 恢复了更改。 从我的工作目录中删除了node_modules文件夹。

但是现在npm installnpm 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-nativereact-native-router-fluxreact等的错误版本。

链接到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