How can I update global packages in Yarn?

Javascriptnode.jsYarnpkg

Javascript Problem Overview


I tried some possible CLI commands but none seem to actually update the packages installed with yarn global add.

yarn global upgrade & yarn upgrade global both don't work correctly. Is there a way of upgrading global packages?

Javascript Solutions


Solution 1 - Javascript

TL;DR:

As webjay says, you simply:

yarn global upgrade

in yarn version 1.2.1 onwards.

For earlier versions:

(cd ~/.config/yarn/global && yarn upgrade)
Checking and repairing

Sadly, there is currently no yarn global check.

You can run yarn global add --force to reinstall all packages.

To check global packages, you can treat ~/.config/yarn/global/ like a local package, since:

  • ~/.config/yarn/global/package.json has dependencies for all global packages
  • ~/.config/yarn/global/node_modules contains all the global packages.

Check all global packages, and reinstall only if an error is found:

$ (cd ~/.config/yarn/global && yarn check || yarn install --force)

Solution 2 - Javascript

Using yarn global add <package>@latest will upgrade a specific package if that is what you are trying to do.

Update

The recently added yarn global upgrade upgrades all packages. This did not exist at the time of the original answer.

Solution 3 - Javascript

There has been an issue created for this already at https://github.com/yarnpkg/yarn/issues/776

Solution 4 - Javascript

Note that per yarnpkg/yarn #5001, yarn global upgrade foo does not always upgrade a package to the latest version, even with the --latest flag.

For example, if you have foo v12.0.1 installed and v13.0.0 is available, this would not upgrade to v13.0.0 because yarn global upgrade currently does not go past major bumps in semver by default (see discussion in above issue for more).

Running yarn global add foo does upgrade the currently installed version to the latest even if there is a semver major version bump between the currently installed version and the latest version.

I believe that yarn global upgrade-interactive would allow one to upgrade past major version bumps as well.

Solution 5 - Javascript

I am using yarn global upgrade

Solution 6 - Javascript

I was getting an error when attempting to upgrade. This started occurring after installing yarn 2.

I was trying to upgrade my globally installed yarn packages via:

yarn global upgrade

Apparently yarn global has been replaced with yarn dlx, however yarn dlx does not do the same thing as yarn global. How confusing :/.

The trick for me was to temporarily downgrade my installation via:

yarn set version classic

Now I can run the upgrade command.

After that, I updated again via:

yarn set version berry

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
QuestionthibmaekView Question on Stackoverflow
Solution 1 - JavascriptTom HaleView Answer on Stackoverflow
Solution 2 - JavascriptcchamberlainView Answer on Stackoverflow
Solution 3 - JavascriptmorrislaptopView Answer on Stackoverflow
Solution 4 - JavascriptTaylor D. EdmistonView Answer on Stackoverflow
Solution 5 - JavascriptwebjayView Answer on Stackoverflow
Solution 6 - Javascriptsmac89View Answer on Stackoverflow