A Quick Introduction to the Yarn Package Manager

Yarn is new and Open Source JavaScript package manager developed by Facebook. Yarn is fully compatible with the npm registry and can work alongside npm, but it's aim it to be a safer, more secure and more reliable alternative.

You can replace your whole npm workflow with Yarn for new or current projects with very minimal effort. Dependencies in Yarn are kept in a yarn.lock file that should be checked-in your source control, but the file itself is for Yarn only and shouldn’t be edited. Here just enough to get your started with Yarn:

1. Installing

There are a few ways to install Yarn. You can, ironically enough, install it through npm:

$ npm install -g yarn

If you don’t have npm installed, you can also install with a simple bash script:

$ curl -o- -L https://yarnpkg.com/install.sh | bash

On Windows, you can get an installer file here.

2. Testing your install

Run this to see if Yarn was properly installed or to see if you have the latest version:

$ yarn --version

3. Init a project

To initialize a new project, run yarn init:

$ yarn init

4. Installing all dependencies

Here’s how to install all the dependencies from your package.json file (the equivalent of npm install):

$ yarn

5. Dependency management

Let’s use lodash for our examples:

Adding a project dependency

$ yarn add lodash

The Yarn package manager

Updating a dependency

$ yarn upgrade lodash

or upgrade all the dependencies:

$ yarn upgrade

Removing a dependency

$ yarn remove lodash

Adding a global dependency

$ yarn global add lodash

A few more useful commands

  • Clean up and reduce the size of your npm_modules folder with: yarn clean
  • Verify that the installed version of a package is a match between the package.json and the Yarn lock files: yarn check
  • Publish a package: yarn publish
  • Check for outdated packages: yarn outdated
  • Find why a package is needed: yarn why lodash
  • Update Yarn itself to the latest version: yarn self-update

Have fun with Yarn! 🍊🐎🌵

Search

🔎 Searching...