Getting started with yarn
Remarks#
Why Yarn, when we have NPM?
This is the burning question now. NPM works great for thousands of developers but it won’t work that great for companies like Facebook , Google. If you’ve deleted your node_modules folder for any reason and run npm install
in the project console, npm will re download each and every package along with their dependencies which is too much time killing. Yarn is great in this purpose. It caches every package it downloads. If you have ever downloaded the package before, you can install it in offline mode too.It also parallelizes operations to maximize resource utilization so install time are faster than ever, like the rocket trying to escape the earth’s gravity!
Yarn is super secured. It uses checksums to verify the integrity of every installed package before its code is executed.
Yarn is reliable . According to their voice, “ Yarn is able to guarantee that an install that worked on one system will work exactly the same way on any other system.”
Installation or Setup
Detailed instructions on getting yarn set up or installed.
If you have npm
installed on your system:
npm install --global yarn
On macOS:
- via Homebrew:
brew install yarn
- via MacPorts:
sudo port install yarn
(node will be installed if not present)
On Windows:
- via Chocolatey:
choco install yarn
- via Scoop:
scoop install yarn
- via installer: download installer
On Linux:
Installation of Yarn with npm
npm install --global yarn
If you didn’t have npm installed before, check there website documentation for more details. https://yarnpkg.com/en/docs/install
From NPM to Yarn
For the most of it, if you know NPM, you’re already set!
That adds a ‘package.json’ file in the root of your project
npm init === yarn init
These are all the same:
npm link === yarn link
npm outdated === yarn outdated
npm publish === yarn publish
npm run === yarn run
npm cache clean === yarn cache clean
npm login === yarn login
npm logout === yarn logout
npm test === yarn test
‘Install’ is Yarn’s default behavior
npm install === yarn
The React Js library is saved in your package.json file:
npm install react --save === yarn add react
npm install -g @angular/cli === yarn global add @angular/cli
Licensing with Yarn
Yarn can check the licenses of your dependencies and can also generate a license based on your package’s dependencies.
yarn licenses
yarn licenses generate
Checking Package Dependencies with Yarn
yarn why package-name
will identify why a package is installed and which other packages depend upon it.
yarn why react
Using yarn with git repos
Using private repos working with yarn caveat:
This works using npm
:
"common-js": "git@bitbucket.org:<user-name>/<repo-name>.git#<identifier>"
but will not work using yarn
. This change is required:
"common-js": "git+ssh://git@bitbucket.org:<user-name>/<repo-name>.git#<identifier>"
Example uses Bitbucket
, but github
is the same.
The ssh key is assumed to be saved on local machine