Tutorial

A Quick Introduction to the Yarn Package Manager

Updated on October 12, 2020
authorauthor

Alligator.io and Matt Abrams

A Quick Introduction to the Yarn Package Manager

Introduction

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.

Installing the Yarn Package Manager

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.

Testing Your Yarn Installation

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

yarn --version

Initializing a Yarn Project

To initialize a new project, run yarn init:

yarn init

Installing Yarn Dependencies

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

yarn

Managing Yarn Dependencies

Letโ€™s use lodash for most of our examples:

Adding a project dependency

Use the add command to add a dependency to your project:

yarn add lodash

You will see an output like this:

Output
yarn add v1.22.5 info No lockfile found. [1/4] ๐Ÿ” Resolving packages... [2/4] ๐Ÿšš Fetching packages... [3/4] ๐Ÿ”— Linking dependencies... [4/4] ๐Ÿ”จ Building fresh packages... success Saved lockfile. success Saved 1 new dependency. info Direct dependencies โ””โ”€ lodash@4.17.20 info All dependencies โ””โ”€ lodash@4.17.20 โœจ Done in 1.48s.

Use the --dev (or its alias -D) flag to add a package as a dev dependency:

yarn add babel-cli -D

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

Conclusion

This is a basic introduction to the Yarn Package Manager. Here are some other common commands:

  • Get some information about a package: yarn info lodash
  • 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
  • Run one of the scripts defined in package.json: yarn run test

Have fun with Yarn!

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors
Default avatar
Alligator.io

author



Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
ย 
Leave a comment
๏ปฟ

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Featured on Community

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow โ€” whether you're running one virtual machine or ten thousand.

Learn more