Adding Yarn as new Dependency Manager along with NPM in Susper
Dependency managers are software modules that coordinate the integration of external libraries or packages into larger application stack. Dependency managers use configuration files like composer.json, package.json, build.gradle or pom.xml to determine: What dependency to get, What version of the dependency in particular and, Which repository to get them from. Currently SUSPER has only NPM as a dependency manager which is used to install all dependencies. In this blog, I will describe how we have added facebook’s Yarn as a new dependency manager in Susper
Lets checkout Yarn in detail:
Yarn is a fast and good alternative to NPM. One of the great advantages of Yarn is that while remaining compatible with the npm registry, it replaces the workflow for npm client or other package managers Yarn was created by Facebook, to solve some particular problems that were faced while using NPM. Yarn was developed to deal with inconsistency in dependency installation while scaling and to increase speed.
What is advantages of using Yarn?
- Improving Network performance:Queuing up the requests and avoiding requests waterfalls helps to maximize network utilization.
- Checks Package Integrity:Package integrity is checked after each install to avoid corrupt packages installation.
- Checks Package Integrity:Package integrity is checked after each install to avoid corrupt packages installation.
- Caching: Yarn helps to install the dependencies without an internet connection if the dependency has been previously installed on the system. This is done by caching.
- Lock File: Lock files are used to make sure that the node_modules directory has the exact same structure on all development environments.
Source: https://yarnpkg.com/en/
How Yarn is installed along with NPM in SUSPER?
Installing Yarn is super easy. Here are the steps to setup Yarn along with NPM and begin using it as dependency manager.
On Debian or Ubuntu Linux, we can install Yarn via our Debian package repository. We will first need to configure the repository:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee
/etc/apt/sources.list.d/yarn.list
Then simply use:
sudo apt-get update && sudo apt-get install yarn
Note: Ubuntu 17.04 comes with cmdtest installed by default. If anyone gets any errors from installing yarn, then remove it by sudo apt remove cmdtest first. Refer to this for more information.
If using nvm you can avoid the node installation by doing:
sudo apt-get install --no-install-recommends yarn
Test that Yarn is installed by running:
yarn --version
Now delete the node_modules folder so that all dependencies installed by npm is removed.
Now use yarn command in project’s repository.
yarn
Wait while dependencies are installed and then we will be done.
What is happening ?
Yarn has created a lock file yarn.lock. After each operation the file is updated (installing, updating or removing packages) to keep the track of exact package version. If kept in our Git repository we can see that the exact same result in node_modules is made available to all systems.
Resources
- Yarn: https://yarnpkg.com/en/
- Announcement of Yarn: https://code.facebook.com/posts/1840075619545360
- Yarn Vs NPM: https://stackoverflow.com/questions/40027819/when-to-use-yarn-over-npm-what-are-the-differences
You must be logged in to post a comment.