DEV Community

Urfan Guliyev
Urfan Guliyev

Posted on

4

NPM vs. YARN

In this blog, I’m going to compare and contrast two well-known JavaScript package managers.

NPM stands for Node Package Manager. It is:

  • the default package manager that comes with the Node.js
  • an online repository of javascript packages and modules.
  • a command-line utility works with said repository to manage packages.

Yarn is an alternative JavaScript package manager that uses npm’s registry, giving you access to the same packages as npm. It was developed under the leadership of Facebook and supported by Google, Exponent and Tilde engineers to address the problems that they were dealing with npm.

lock file:

In npm versions 3 and earlier, many developers faced a dependency versions problem where the app broke when moving a project from one machine to another. Npm did have a shrinkwrap command in an earlier version that created a lock file. The problem with this was that the file could not be generated automatically, you had to always update it yourself. To fix this problem, yarn automatically installs (updates) a yarn.lock file that contains the exact same version of the dependency that should be installed on every device. After yarn, Npm 5 introduced the package-lock.json file to replace npm-shrinkwrap.

Package Installation:

NPM installs packages one by one, waiting for the first package to be installed before beginning the next. Yarn, by contrast, speeds up the process by installing multiple packages at the same time. Additionally, yarn stores the package to your disk such that for the next installation, the package is immediately used instead of waiting for an HTTP request to get it.

CLI Commands:

  • After creating a React app by using the following command:
npx create-react-app my-app-name
Enter fullscreen mode Exit fullscreen mode

We can create a package.json file by using:

npm init //or
yarn init
Enter fullscreen mode Exit fullscreen mode
  • The following commands are used for adding/updating/deleting packages
//using npm
npm install <package..>
npm upgrade <package..>
npm uninstall <package..>

//using yarn
yarn add <package..>
yarn upgrade <package..>
yarn remove <package..>
Enter fullscreen mode Exit fullscreen mode

SurveyJS custom survey software

JavaScript UI Libraries for Surveys and Forms

SurveyJS lets you build a JSON-based form management system that integrates with any backend, giving you full control over your data and no user limits. Includes support for custom question types, skip logic, integrated CCS editor, PDF export, real-time analytics & more.

Learn more

Top comments (1)

Collapse
 
thebuildguy profile image
Tulsi Prasad

Nice review about beginning with yarn!

SurveyJS custom survey software

JavaScript Form Builder UI Component

Generate dynamic JSON-driven forms directly in your JavaScript app (Angular, React, Vue.js, jQuery) with a fully customizable drag-and-drop form builder. Easily integrate with any backend system and retain full ownership over your data, with no user or form submission limits.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay