The Yarn package manager from Facebook just turned 1.0 today 11 months after its initial release. The new version touts some pretty impressive features that will make your life as a developer easier when you work with Node.js packages.
What’s New in Yarn 1.0?
On a high-level, Yarn 1.0 introduces the following big features:
- Yarn Workspaces
- Auto-Merging of lockfiles
- Selective version resolutions
The workspaces feature was hard for me to grasp. I recommend you read more about workspaces in detail to understand it better.
This version includes many other improvements from the Yarn community. The community support and growth around Yarn has been significant in the short time it has been around. Yarn touts an active open-source community, with over 175,000 projects on GitHub.com using a
yarn.lock file and now nearly 3 billion package downloads per month.
What is Yarn?
If you are not familiar with Yarn, it’s an alternative to NPM and uses a deterministic algorithm for installs using a lockfile. It’s touted to be faster and more secure than NPM. Once you install a package, Yarn caches it on your machine and uses the local version on subsequent installations. Installation is also very reliable, which can be a challenge when working with NPM.
Notable CI environments now have Yarn available by default and large companies like Twitter and Microsoft are seeing noticeable improvements in their process as a result of using Yarn.
If you want more details on the background of Yarn and why it exists, the introduction post from last year is a good place to learn more.
What about NPM?
Earlier this year, the NPM team released NPM 5.0. Version 5 introduces a few notable features, like the concept of a lock file (package-lock.json) and auto-install without using
--save. NPM 5 also has significant performance improvements over previous releases. NPM improvements are exciting news for the Node.js community, and I hope that these two package managers push each other towards making improved package management tools for Node.js.
Even if you’re excited about NPM 5, I still personally think you’ll notice increased reliability and performance when you build and deploy with Yarn. I know I have. Developers transitioning to Yarn can still keep using NPM alongside Yarn. You can evaluate both and back out if you decide Yarn is not for you (but I bet you’ll love it).