Upgrading React version and it's dependencies by reading package.json

ReactjsDependenciesUpgrade

Reactjs Problem Overview


I have an existing project, which has react@15 and all it's dependencies according to that. But now I have to upgrade to react@16 along with it's dependencies. Now, the problem is - there are a lot of dependencies and it is very time consuming to identify version of each dependency.

So, I was wondering if there was a way where I could upgrade the versions of React and it's dependencies mentioned in package.json, without manually modifying the package.json file.

Reactjs Solutions


Solution 1 - Reactjs

Using npm

Latest version while still respecting the semver in your package.json: npm update <package-name>. So, if your package.json says "react": "^15.0.0" and you run npm update react your package.json will now say "react": "^15.6.2" (the currently latest version of react 15).

But since you want to go from react 15 to react 16, that won't do. Latest version regardless of your semver: npm install --save react@latest.

If you want a specific version, you run npm install --save react@<version> e.g. npm install --save [email protected].

https://docs.npmjs.com/cli/install

Using yarn

Latest version while still respecting the semver in your package.json: yarn upgrade react.

Latest version regardless of your semver: yarn upgrade react@latest.

https://yarnpkg.com/lang/en/docs/cli/upgrade/

Solution 2 - Reactjs

if you want to update your react and react-dom version in your existing react step then run this command I hope You get the latest version of react and react-dom.

Thanks

npm install react@latest react-dom@latest

Solution 3 - Reactjs

Yes, you can use Yarn or NPM to edit your package.json.

yarn upgrade [package | package@tag | package@version | @scope/]... [--ignore-engines] [--pattern]

Something like:

yarn upgrade react@^16.0.0

Then I'd see what warns or errors out and then run yarn upgrade [package]. No need to edit the file manually. Can do everything from the CLI.

Or just run yarn upgrade to update all packages to latest, probably a bad idea for a large project. APIs may change, things may break.

Alternatively, with NPM run npm outdated to see what packages will be affected. Then

npm update

https://yarnpkg.com/lang/en/docs/cli/upgrade/

https://docs.npmjs.com/getting-started/updating-local-packages

Solution 4 - Reactjs

I found a nice article here.

All we need to do (for npm, globally) is:

sudo npm install -g npm-check-updates

Then run it like below:

ncu -u

It will show you all dependencies (upgraded) nicely like below:

Upgrading /home/ajay/Documents/react-beast/package.json
[====================] 7/7 100%

 @testing-library/user-event  ^11.4.2  →  ^13.0.16     
 react                        ^17.0.1  →   ^17.0.2     
 react-dom                    ^17.0.1  →   ^17.0.2     
 react-scripts                  4.0.1  →     4.0.3     
 web-vitals                    ^1.1.0  →    ^1.1.1  

Try running ncu -u again immediately after above and you will a message like this:

Upgrading /home/ajay/Documents/react-beast/package.json
[====================] 7/7 100%

All dependencies match the latest package versions :)

Do a npm install after that and you should have all the latest versions for all your dependencies for your project.

To me this was the nicest and cleanest solution (well - in most cases) if we need to keep our (npm/React) project - latest and greatest - rather than wasting time on manually updating the versions.

Solution 5 - Reactjs

I highly recommend using yarn upgrade-interactive to update React, or any Node project for that matter. It lists your packages, current version, the latest version, an indication of a Minor, Major, or Patch update compared to what you have, plus a link to the respective project.

You run it with yarn upgrade-interactive --latest, check out release notes if you want, go down the list with your arrow keys, choose which packages you want to upgrade by selecting with the space bar, and hit Enter to complete.

Npm-upgrade is ok but not as slick.

Solution 6 - Reactjs

Some packages are interdependent and are to be used with the same versions of each other... for example recently had a problem with npm [email protected] and [email protected]. I wanted to use a hook but could not so I ran:

npm update react@latest react-dom@latest

this did not work... went into some of the react.js blogs/documentation and found that these particular packages are interdependent and the versions must be the same. To update these:

npm uninstall react
npm uninstall react-dom

npm install react@^16.8.0 react-dom@^16.8.0

And everything worked just fine. Look for stable releases. Read the documentation. https://reactjs.org/blog/2019/02/06/react-v16.8.0.html https://reactjs.org/warnings/invalid-hook-call-warning.html

Solution 7 - Reactjs

If you want to update react use npx update react on the terminal.

Solution 8 - Reactjs

If you want to update any specific version from the package.json you can update the version of the package by doing ==>

yarn add package-name@version-number

or

npm install --save package-name@version-number

If you want to update all packages to the latest version you can run command ==>

npm audit fix --force

Solution 9 - Reactjs

you can update all of the dependencies to their latest version by npm update

Solution 10 - Reactjs

You can just use this command npm install -g create-react-app if you don't have root user permissions then use this with sudo npm install -g create-react-app

Solution 11 - Reactjs

  • To update to a new major version all the packages, install the npm-check-updates package globally:

    npm install -g npm-check-updates
    
  • Run the following command to upgrade all the version hints in the package.json file.

    ncu -u
    
  • Run the following command to install upgraded packages:

    npm update
    

For more: https://flaviocopes.com/update-npm-dependencies/

Solution 12 - Reactjs

Use this command to update react npm install --save [email protected] Don't forget to change 16.12.0 to the latest version or the version you need to setup.

Solution 13 - Reactjs

No need to install react, just do the following command in terminal in Linux/Mac or cmd in Windows:

npx create-react-app my-app

my-app - is a optional name, you may name it whatever you want it to.

It would create the updated template for your next project up and ready!

Solution 14 - Reactjs

In terminal run the commands to update the react versions $npm i react@next react-dom@next

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAlwaysALearnerView Question on Stackoverflow
Solution 1 - ReactjstskjetneView Answer on Stackoverflow
Solution 2 - ReactjsSanat GuptaView Answer on Stackoverflow
Solution 3 - ReactjsJoshua RobinsonView Answer on Stackoverflow
Solution 4 - ReactjsAjay KumarView Answer on Stackoverflow
Solution 5 - ReactjsNathanQView Answer on Stackoverflow
Solution 6 - ReactjsShaun RobinsonView Answer on Stackoverflow
Solution 7 - Reactjsuser7854158View Answer on Stackoverflow
Solution 8 - Reactjsuser7793540View Answer on Stackoverflow
Solution 9 - ReactjsSjonchheView Answer on Stackoverflow
Solution 10 - Reactjskrishna kakadeView Answer on Stackoverflow
Solution 11 - ReactjsCodemakerView Answer on Stackoverflow
Solution 12 - ReactjsFélix MaroyView Answer on Stackoverflow
Solution 13 - ReactjsThirumalai vasanView Answer on Stackoverflow
Solution 14 - ReactjsVallapureddy BhargaviView Answer on Stackoverflow