The main argument for me to give it a try was that it was presented as fast (first word on the website and the GitHub ) and it seems to be , I always found npm slow, maybe that’s because I am also a Spring developer using Maven and I’m tired of drinking my coffee while looking at the dependencies being downloaded before I can make a Hello World with my favorite oversized framework.
Repetitive tasks like downloading dependencies, building, linting, runing tests, … need to be the fastest possible, and trying Yarn follows that logic.
How to install Yarn
Personnally, I installed it through npm but they have a lot of possibilities in their installation guide .
[code]$ npm install -g yarn$ yarn --version # should give 0.16.1 at the time of writing[/code] How to init a project
[code]$ yarn init[/code] You’ll have to answer a few question exactly like npm does with npm init , and it will create the package.json file for you, nothing new, moving on.
For the name of your project, npm only allows URL-friendly characters (no spaces, …), Yarn doesn’t complain, BUT will error when you’ll try to add a dependency.
How to add a dependency
[code]$ yarn add angular # for the latest version$ yarn add [email protected][/code] # for a specific version
$ yarn add --dev gulp # dev dependency
Same as npm, the node_modules directory is created and angular is added.
(If you install Angular 1.5.1 and then Angular 1.5.8, only the 1.5.8 will be available, there is only one version of a package at a time).
How to upgrade a dependency
[code]$ yarn upgrade angular[/code] How to remove a dependency
[code]$ yarn remove angular[/code] How to download all dependencies
[code]$ yarn install[/code] [code]or[/code] [code]$ yarn[/code] As you can see, it’s the same as npm so far, a few differences :
[code]npm install => yarn addnpm install --save dev => yarn add --dev[/code] Yarn also has an offline mode with the --offline switch, it will look up the local registry and take the dependencies from here if it’s been already downloaded, a little feature that can come in handy.