Yarn Version Manager

Yarn Version Manager

  • Docs
  • GitHub

›Getting Started

Getting Started

  • Overview
  • API
  • Contribute
  • FAQ

Overview

⚠️ Deprecation Notice (2022-02-20) ⚠️

yvm has been deprecated in favour of corepack which is distributed by default with NodeJS v14, and is available in older versions by installing the corepack npm package globally.

With corepack, you specify your package manager and version via the packageManager field in your project's package.json file (see example).

What does it mean to be deprecated? yvm will no longer receive updates (except for critical security vulnerabilities) and the repository will eventually be archived.

YVM Latest Version Minimum Node Version Builds codecov semantic-release Dependencies Dependabot All Contributors Discord Maturity badge - level 3 Pull Reminders

Pesky yarn versions got you down? Automatically and easily manage those versions.

YVM will automatically use the correct yarn version when you run any yarn commands in any folder with a package.json, .yvmrc or any other supported configuration file. Otherwise, it will use you a globally set version of yarn.

Motivation

Manually managing different yarn versions across projects is a pain. This fixes that.

Installation

Node: >=10.0.0

Homebrew

Installs the latest stable version.

brew install tophat/bar/yvm --without-node

NOTE: Remove the flag --without-node to install with the node dependency.

Windows

TODO: #435

Node

Execute the following in your terminal:

curl -s https://raw.githubusercontent.com/tophat/yvm/master/scripts/install.js | node

Or to install a specific version:

curl -s https://raw.githubusercontent.com/tophat/yvm/v3.2.1/scripts/install.js | INSTALL_VERSION="v3.2.1" node

Script

Some older versions of yvm do not have the node installer enabled. If so the shell script installer can be used.

curl -s https://raw.githubusercontent.com/tophat/yvm/v2.4.3/scripts/install.sh | INSTALL_VERSION="v2.4.3" bash

Manual

Navigate to yvm releases and download the yvm.js file for the latest release into your desired yvm install directory.

Typically .yvm your home directory, then run the following command to configure your shell.

node ./home/joe_user/.yvm/yvm.js configure-shell

You will need to reload the shell to get yvm, or source the generated yvm.{sh,fish} scripts.

Upgrade

To upgrade yvm to the lastest version either install as normal, or run

yvm update-self

Usage

Automagic

Run any yarn command and watch it automagically use the correct version of yarn.

Yarn is shimmed to use the default version or the version defined your current directory config file.

yarn --version

Basic

To download and install a specific version of yarn, run:

yvm install <version>

To get the latest version of Yarn, run:

yvm install latest

Execute an arbitrary command using a specific version of yarn:

yvm exec <version> <command>

Additional commands

Switch the current yarn versions:

yvm use <version>
yarn --version

NOTE: The above disables yarn shimming until a new shell is loaded.

Control version aliasing:

yvm alias stable
# stable → 1.13.0 (1.13.0)

yvm alias default stable
# default → stable (1.13.0)

yvm alias
# default → stable (1.13.0)
# latest → 1.14.0 (1.14.0)
# stable → 1.13.0 (1.13.0)
# system → 1.13.0 (1.13.0)

yvm alias default '^1.7'
# default → ^1.7 (1.14.0)

Show path to version used:

yvm which

List installed yarn versions:

yvm list

Full list of available commands:

yvm --help

Configuration file

Yvm defaults to using the yarn version in your package.json engines. Otherwise you can create a .yvmrc file containing the version number of yarn in your project's root directory. Afterwards, yvm use, yvm install and yvm exec will use the version specified in the config file if no version number is supplied to the command. You can also declare the version using other configuration files

Custom Bootstrapping

When using yvm exec, the appropriate yarn version is executed using the node available in the current context. This can be explicitly specified using the YVM_BOOTSTRAP_EXEC_PATH environment variable.

Example: if you are using nvm, you can avoid having to execute nvm use before using yvm exec:

export YVM_BOOTSTRAP_EXEC_PATH=~/.nvm/nvm-exec
yvm exec my-command

You can set this environment variable globally in your preferred shell's setup script (e.g. bashrc/zshrc).

The script referenced via the exec path must be executable. It receives the yarn executable as its first argument, and should forward the remaining arguments to yarn.

Last updated by Noah
API →
  • Motivation
  • Installation
    • Homebrew
    • Windows
    • Node
    • Script
    • Manual
    • Upgrade
  • Usage
    • Automagic
    • Basic
    • Additional commands
    • Configuration file
    • Custom Bootstrapping
Yarn Version Manager
GitHubStar
Top Hat Open Source