Я читал много ужасных историй от людей, которые целыми днями пытались обновить React-Native до последней версии. Официальные инструкции, упомянутые здесь, в большинстве случаев не работают.
После стольких проб и ошибок я выяснил, что это самый простой способ.
Есть замечательный инструмент под названием rn-diff-purge (пожалуйста, не обманывайте себя названием, он не будет производить никаких чисток 😅). Этот инструмент сравнивает разные версии react-native и показывает отличия от уровня исходного кода. Увидев различия, вы можете внести изменения в соответствии со сборкой. Это зависит от количества используемых вами библиотек, но первоначальная сборка может сразу завершиться успешно или показать некоторые ошибки. Затем вы можете работать над этими ошибками одну за другой.
Я использовал этот инструмент для обновления react-native три раза, и мне потребовалось от 30 минут до 1 часа, чтобы завершить обновление.
Ниже приведены шаги, которые я предпринимаю каждый раз, когда решаю выполнить обновление:
- Убедитесь, что ваша кодовая база находится в хорошем состоянии, что означает, что вы устранили все известные проблемы.
- Убедитесь, что вы зафиксировали все свои изменения:
git add . git commit -m “Last commit before upgrade to RN version 0.59.0” git push
- Скопируйте и вставьте это в свой браузер: https://github.com/pvinis/rn-diff-purge/compare/version/0.58.6..version/0.59.0
- Вручную внесите изменения в соответствии с отображаемыми различиями.
- Запустите npm i для обновления версий
- Сборка и развертывание с помощью Android Studio и Xcode
Если ошибки не отображаются, начните модульное тестирование.
Если отображаются некоторые ошибки, они, скорее всего, связаны с используемыми вами библиотеками. Если это так, перейдите в репозиторий github для библиотеки, которая выдает ошибку.
Например, когда я обновил React-Native с 0.58.6 до 0.59.0, использованная мной библиотека (lottie-react-native) вызвала некоторые ошибки компиляции в Android Studio. Поэтому я зашел на их сайт github и нашел эту проблему. Затем я выполнил указанные там инструкции, чтобы решить проблему.
Вы наверняка столкнетесь со многими проблемами, но большинство проблем (если не все), с которыми я столкнулся до сих пор, вызваны библиотеками, которые я использовал, а не самим React-Native.
Когда вас устраивают все изменения, запустите git diff
, чтобы увидеть изменения, затем git add .
git commit -m "Complete React Native Upgrade"
git push
.
Поздравляю! Вы готовы использовать новейшие функции, предоставляемые последними версиями React-Native.
Примечание: некоторые проблемы не имеют немедленных решений (для чего может потребоваться новая версия самих библиотек). Но хорошая новость заключается в том, что у всех проблем будет какое-то решение. 😃