Javascript 适当的降级机制
我的情况是: 我有一个react本地项目的工作副本,该项目运行良好。将其提交到我的git存储库 我决定将react native升级到0.26.3,然后升级到0.28,最后由于冲突导致依赖关系混乱。所以决定回到以前的工作版本。恢复了更改。从我的工作目录中删除了node_modules文件夹 但是现在npm安装不起作用了 我在package.json中的工作依赖项Javascript 适当的降级机制,javascript,node.js,npm,react-native,Javascript,Node.js,Npm,React Native,我的情况是: 我有一个react本地项目的工作副本,该项目运行良好。将其提交到我的git存储库 我决定将react native升级到0.26.3,然后升级到0.28,最后由于冲突导致依赖关系混乱。所以决定回到以前的工作版本。恢复了更改。从我的工作目录中删除了node_modules文件夹 但是现在npm安装不起作用了 我在package.json中的工作依赖项 "dependencies": { "immutable": "^3.8.1", "key-mirror": "^
"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
这对我来说毫无意义,因为我的react依赖项是15.0.2,而react原生依赖项是0.26.0,正如您在package.json中看到的那样
请注意,这是以前的一次提交(整个批次)的结果。
我还做了一个npm-ls
。树中显示了异常错误的依赖项,如react native
、react native router flux
、react
的错误版本
尝试
npm-prune
,然后再次尝试npm-i
命令
npm prune
基本上将删除所有不需要的软件包,npm i
将确保安装所有丢失的软件包。请将package.json中的react
依赖项显式更新为15.0.2
,不是^15.0.2
,因为后者解析为15.1.0
,导致此问题。建议在下次升级并再次出现此错误之前保持此状态(以避免react
同时更改其版本和react native
未准备好)
此外,使用npm3
ePERINVALID
不再是一个错误,而是一个警告。对于现有项目,如果您想安装/降级到较低版本
npm install react-native@x.x.x ex: npm install react-native@0.43.4
这将安装指定的版本
使用react-native检查已安装的版本--version如果您使用react-native,则可以使用所需的版本修改package.json文件,然后删除所有节点模块rm-rf节点_模块,然后重新安装npm installUpdate 2020 快跑
npm install react-native@0.43.8
用您需要的版本替换
0.43.8
。降级React Native需要手动步骤。我建议使用。这是我的步骤
纱线
或npm安装
重要提示:如果要降级多个版本,则应一次降级一个版本。例如,从0.61.x降级到0.58.x,应该首先升级到0.60.x版本,测试它在iOS和Android中是否工作,然后继续并降级到0.59.x版本,如果您在
Package.json
中更改版本并重新安装npm packages
,它将产生构建错误。请将降级/升级到特定的版本。您不能从源代码管理还原更改吗?我做了。还原后,我必须安装npm install
从源代码管理还原后,请让我知道这是否解决不了您的问题hi,不,它没有解决问题。我还做了rm-rf~/.npm
,npm缓存清除
。绝对没有帮助。你能从本地删除整个项目吗。。把它拉回来,做新的npm i。。逻辑上没有意义,但你永远不知道它可能会解决你的问题,也徒劳地尝试了。我不知道还有什么要做。升级前尝试签出几个提交。如何正确地降级,不仅是项目特定的,而且是全局的?有办法吗?这只是局部的?如何在全球范围内做到这一点?请查看。可能会有帮助。这不是推荐的方法。谢谢。您知道是否需要手动更新project.pbxproj吗?或者更新所有其他文件会导致project.pbxproj自动更新吗?@gkeenley您必须手动更新project.pbxproj。不幸的是,我知道的是:使用Xcode并应用他们推荐的更新。使用react native upgrade或任何有助于升级react native项目的命令行工具。据我所知,是的。对不起,我以为我有。现在完成:)降级后,我没有生成错误,但应用程序在运行时会崩溃,在黑屏上被阻止。