Skip to main content

yarn set version

Lock the Yarn version used by the project.

Usage

$ yarn set version <version>

Examples

Download the latest release from the Yarn repository :

yarn set version latest

Download the latest canary release from the Yarn repository :

yarn set version canary

Download the latest classic release from the Yarn repository :

yarn set version classic

Download the most recent Yarn 3 build :

yarn set version 3.x

Download a specific Yarn 2 build :

yarn set version 2.0.0-rc.30

Switch back to a specific Yarn 1 release :

yarn set version 1.22.1

Use a release from the local filesystem :

yarn set version ./yarn.cjs

Use a release from a URL :

yarn set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js

Download the version used to invoke the command :

yarn set version self

Details

This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.

By default it only will set the packageManager field at the root of your project, but if the referenced release cannot be represented this way, if you already have yarnPath configured, or if you set the --yarn-path command line flag, then the release will also be downloaded from the Yarn GitHub repository, stored inside your project, and referenced via the yarnPath settings from your project .yarnrc.yml file.

A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.

The version specifier can be:

  • a tag:

    • latest / berry / stable -> the most recent stable berry (>=2.0.0) release

    • canary -> the most recent canary (release candidate) berry (>=2.0.0) release

    • classic -> the most recent classic (^0.x || ^1.x) release

  • a semver range (e.g. 2.x) -> the most recent version satisfying the range (limited to berry releases)

  • a semver version (e.g. 2.4.1, 1.22.1)

  • a local file referenced through either a relative or absolute path

  • self -> the version used to invoke the command

Options

DefinitionDescription

--yarn-path

Set the yarnPath setting even if the version can be accessed by Corepack

--only-if-needed

Only lock the Yarn version if it isn't already locked