Upgrading to new versions of React Native will give you access to more APIs, views, developer tools and other goodies. Because React Native projects are essentially made up of an Android project, an iOS project and a JavaScript project, all combined under an npm package, upgrading can be rather tricky. But we try to make it easy for you. Here's what you need to do to upgrade from an older version of React Native:
IMPORTANT: You don't have to install the new version of React Native, it will be installed automatically.
The module react-native-git-upgrade
provides a one-step operation to upgrade the source files with
a minimum of conflicts. Under the hood, it consists in 2 phases:
Your project doesn't have to be handled by the Git versioning sytem (could be Mercurial, SVN or none)
but Git has to be installed and available in the PATH
. You can download Git here:
https://git-scm.com/downloads
react-native-git-upgrade
module #It's a CLI tool and must be installed globally:
Run the command to start the process:
The templates are upgraded in a optimized way. You still may encounter conflicts but only where the Git 3-way merge have failed, depending on the version and how you modified your sources.
Conflicted files include delimiters which make very clear where the changes come from. For example:
You can think of "ours" as "your team" and "theirs" as "the React Native dev team".
Use this only in case the above didn't work.
react-native
dependency #Note the latest version of the react-native
npm package from here (or use npm info react-native
to check):
Now install that version of react-native
in your project with npm install --save
:
If you saw a warning about the peerDependency, also upgrade react
by running:
The new npm package may contain updates to the files that are normally generated when you
run react-native init
, like the iOS and the Android sub-projects.
You may consult rn-diff to see if there were changes in the project template files. In case there weren't any, simply rebuild the project and continue developing. In case of minor changes, you may update your project manually and rebuild.
If there were major changes, run this in a terminal to get these:
This will check your files against the latest template and perform the following:
Some upgrades require manual steps, e.g. 0.13 to 0.14, or 0.28 to 0.29. Be sure to check the release notes when upgrading so that you can identify any manual changes your particular project may require.
You can edit the content above on GitHub and send us a pull request!