当前项目react-native的版本是0.53.3,因为最近在做一系列性能优化的工作,于是计划升级一下RN的版本,升级至0.56.0。
先看一下ReactNative0.56.0版本更新的内容:
https://github.com/react-native-community/react-native-releases/blob/master/CHANGELOG.md#056
步骤及遇到的问题如下:
1.使用https://reactnative.cn/docs/upgrading/中基于Git的自动合并更新方式:
首先全局安装react-native-git-upgrade工具模块:
1 | $ npm install -g react-native-git-upgrade |
2.接下来进行更新操作
1 | $ react-native-git-upgrade |
那么更新到0.56.0就是
1 | $ react-naitve-git-update 0.56.0 |
3.等待升级结束后,需要解决冲突, 下面的这些文件的冲突都需要进行解决一下
1 | 文件中的冲突会以分隔线隔开,并清楚的标记出处,例如下面这样: |
注意问题
一、0.56.0以上的RN使用Babel 7
React Native now uses Babel 7
When upgrading to 0.56, make sure to bump your babel-preset-react-native package.json dependency to 5.0.2 or newer (but still as fixed value).
React Native 现在使用 Babel 7,升级到 0.56 后,请确保将 babel-preset-react-native package.json 依赖项升级到 ^5.0.2 或更高版本。
那么就需要升级一下babel-preset-react-native版本
1 | yarn add babel-preset-react-native@5.0.2 --dev |
二、升级后遇到react native version mismatch问题
参考了https://stackoverflow.com/questions/47763824/react-native-version-mismatch中的解决方案:
1.IOS
进入项目中:
1 | cd ios && pod install |
1 | For others with the same problem on iOS with CocoaPods: |
2.Android
第三方库使用的buildToolsVersion版本太低,不需要手动修改库内容,在android/build.gradle中添加以下内容,强制所有依赖使用相同版本。
1 | subprojects { |