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!
Top comments (6)
There is also pnpm.
This looks really interesting!! If I wrote on pnpm, would you review it?
Sure
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 :)
when migrating to yarn, do we need to uninstall global packages we installed with npm?