davidhu
davidhu

Reputation: 10434

How do I change the version of yarn used?

I used Homebrew to install yarn. Running yarn -v shows that I currently use 0.23.2. I ran brew upgrade yarn to get the latest version, which is 0.24.6.

After Homebrew successfully upgrades yarn, I run yarn -v again, but the version is still 0.23.2. How can I change the version of yarn that I am running?

Upvotes: 111

Views: 224718

Answers (11)

vv113344
vv113344

Reputation: 1

This is what I did in my windows system,

one of my project required [node@22, [email protected]], while another required [node@16, [email protected]].

As usual, I used nvm to easily switch between node versions. However, there was not an easy way to manage yarn versions. To install [email protected] I did it using corepack on node@22, which made yarn -v return 4.5.0. (Note: Ensure that the C://users/username/ directory does not contain .yarnrc.yml file, as it can force a specific yarn version. if it exists, delete it.)

Now in order to use [email protected]. I downloaded [email protected] tar file from yarn releases and extracted it in another directly for eg. C://Tools/yarn1.22.22. Then I created one .bat file named yarn-old.bat with following code

@echo off
C:\Tools\yarn-v1.22.22\bin\yarn.cmd %*

Next, I registered this file path in Windows Environment Variables.

As a result:

  • Running yarn-old -v gives me 1.22.22
  • Running yarn -v gives me 4.5.0

I hope this solution helps.

Upvotes: 0

crxyz
crxyz

Reputation: 977

You can use

yarn set version <version>

For example, if you want the latest version, you can run

yarn set version latest

You can also set it to a specific number, for example,

yarn set version 1.22.1

You can view the full documentation at the official website.


Note 1: A bug stops you from switching from yarn 2 to yarn 1. There are solutions to this in this GitHub issue.

Note 2: I don't use brew, but this solution should still work.

Upvotes: 38

talabes
talabes

Reputation: 5474

UPDATE Dec 2021:

Sadly brew switch is deprecated in Homebrew 2.6.0 (December 2020)

$ brew switch
Error: Unknown command: switch

TLDR, to switch version:

brew unlink yarn
brew link yarn@<new_version>

Old solution:

Assuming that you have the other version installed, you can run

brew switch yarn <old_version>

To list the versions you have installed:

brew list --versions yarn

Upvotes: 27

cheesydoritosandkale
cheesydoritosandkale

Reputation: 609

Some of the above answers don't seem to work anymore. Here is how I was able to install a different version in April 2021:

brew unlink [email protected] (If you already have a version installed)

brew extract --version 1.22.4 yarn homebrew/cask

brew install [email protected]

yarn -v

Upvotes: 1

AmerllicA
AmerllicA

Reputation: 32492

For updating version on macOS use below command:

$ brew upgrade yarn

Upvotes: 1

mycargus
mycargus

Reputation: 2618

You can use homebrew and yarn formula URLs to install older versions of yarn, then brew switch between yarn versions as needed. Works perfectly! Credit to github user robertmorgan.

  1. First off, if you already have a version installed, unlink it from brew running the brew unlink yarn command in your terminal.

  2. Next, in a web browser, find the Pull Request that has been merged which contained the formula (version) of Yarn that you want to install.

  3. View the files changed in that Pull Request - there should be one for Formula/yarn.rb.

  4. Click the "View" button for the Formula/yarn.rb file to see the whole contents of the file for that commit.

  5. Click the button to view the "Raw" version of that file. This will open a url which should start with https://raw.githubusercontent.com/....

    This is the URL that you will need for the next step - so copy the complete URL to your clipboard.

  6. Back in your terminal window, use the command brew install followed by the URL that you've copied.

    e.g. to install v1.6.0 of yarn it would be:

    brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/fba7635ab69384ac980c635483a7af825bc06088/Formula/yarn.rb
    

You can then verify the versions available to Homebrew by running: brew list --versions yarn, and switch between versions using brew switch yarn VERSION_NUMBER

Source: https://github.com/yarnpkg/yarn/issues/1882#issuecomment-421372892

Upvotes: 53

Christian Rauh
Christian Rauh

Reputation: 1323

yarn policies set-version <version number>

Per https://github.com/yarnpkg/yarn/issues/7146#issuecomment-477809216

Upvotes: 120

Jake Bolam
Jake Bolam

Reputation: 388

Your best bet would be to use a yarn version manager.

Install:

curl -fsSL https://raw.githubusercontent.com/tophat/yvm/master/scripts/install.sh | bash

Single usage:

yvm exec <version> <command>

Or to switch your currently running yarn version

yvm use <version>
yarn --version

Upvotes: 31

Razzi Abuissa
Razzi Abuissa

Reputation: 4092

Here's a way to do it with only curl and bash:

curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 0.24.6  # or another version

This works whether you have yarn installed or not.

Upvotes: 12

daddeo
daddeo

Reputation: 131

Easily install and switch between any number of yarn versions.

https://github.com/tophat/yvm

Upvotes: 12

davidhu
davidhu

Reputation: 10434

I found an answer. It's not the prettiest, but since yarn always tell me what the most update-to-date version is, I can use npm to just install the latest version.

If the latest is 0.24.6

npm install --global [email protected]

EDIT:

According to yarn's official documentation, the way to install/upgrade is:

brew install yarn

brew upgrade yarn

https://yarnpkg.com/en/docs/install#mac-stable

Upvotes: 55

Related Questions