yarn it, I'm migrating!

vblaha profile image vblaha Updated on ・1 min read

I recently assisted migration on a project from npm to Yarn, and it was as easy as typing yarn into the terminal.
Yarn is package management tool that creates modules (blocks of code from other developers that you load into your program) through terminal commands, very similar to the way you would with npm (Node.js package manager). It does this by using a lockfile to ensure that all libraries match across users (a common complaint from the npm client user is that multiple versions of dependencies can exist between users, and accountability goes down, resulting in a 'works on my machine' attitude). So with Yarn, you always know you're getting the same thing on every development machine.

You can migrate from npm to yarn by navigating to your project folder in the terminal and using the following comparison chart to customize the package you are working to build.

npm (v5)                            Yarn

npm install                         yarn install
(N/A)                                   yarn install --flat

Flat mode is a unique feature that resolves mismatching versions of dependencies, creating a single version-this can help with code cleanup and deletion of duplicates.

(N/A)                                   yarn install --har
npm install --no-package-lock           yarn install --no-lockfile
(N/A)                                   yarn install --pure-lockfile
npm install [package] --save            yarn add [package]
npm install [package] --save-dev        yarn add [package] --dev
(N/A)                                   yarn add [package] --peer
npm install [package] --save-optional   yarn add [package] --optional
npm install [package] --save-exact      yarn add [package] --exact
(N/A)                                   yarn add [package] --tilde
npm install [package] --global          yarn global add [package]
npm update --global                     yarn global upgrade  

The above set of commands will install/add dependencies and create a .lock file based on the customizations you choose.

npm rebuild                         yarn add --force
npm uninstall [package]                 yarn remove [package]

The remove package command can be useful. If you are working in an environment that has multiple package management tools running, you will be in pain. Try to stick to one.

npm run test                            yarn test

Yarn's lockfile system creates a local cached copy that facilitates offline package installs. This is helpful because you can install your npm packages without an internet connection. In Yarn, your tests will pass even when npm goes down!

These are just a few basic concepts of the Yarn system. For full documentation, visit the Yarn CLI docs. While you may try Yarn and find it's not the best fit, it is a great tool that helps drive innovation. As always, I welcome questions, feedback and room for improvement. Thanks for reading!

Posted on Nov 8 '18 by:

vblaha profile



Current student at Georgia Institute of Technology Full Stack Web Development Bootcamp


markdown guide

This looks really interesting!! If I wrote on pnpm, would you review it?


This is one holy war I'm happy to take a firm stand on. NPM purists, change my mind? Thus far, yarn has felt strictly superior.


Thank you, I have seen yarn all over the place and this post just turned out my curiosity. I had already migrated my projects to it and damnn! It's so much better than old NPM! fast as hell too :)