yarn it, I'm migrating! 
Tags: node, yarn, javascript
Published: 2018-11-08 17:16:30

---
title: yarn it, I'm migrating! 
published: true
description: 
tags: node, yarn, javascript
---
![img](https://yarnpkg.com/assets/feature-secure.png)
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](https://yarnpkg.com/lang/en/docs/cli/). 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!