yarn it, I'm migrating!
vblaha Nov 8
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!