Open In App

Difference between dependencies, devDependencies and peerDependencies

Last Updated : 05 Jan, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

Every web application project typically includes a file named package.json, which serves as a repository of essential project metadata. This file encompasses information ranging from dependencies and their respective versions to development dependencies and peer dependencies.

Run the following command to initialize the project from the root directory of your project:

npm init -y

Dependencies:

In the package.json file, there is an object called dependencies and it consists of all the packages that are used in the project with its version number. So, whenever you install any library that is required in your project that library you can find it in the dependencies object. 

Syntax:

npm install <package name>

Example: Installing the moment module for formatting the time in the project using the following command:  

npm install moment

After the module is installed, then if you navigate to the package.json file then you can find the moment with its version in the dependencies object as shown below:

package.json:

"dependencies": {   
"moment": "^2.30.1",
}

Dev Dependencies:

In package.json file, there is an object called as dev Dependencies and it consists of all the packages that are used in the project in its development phase and not in the production or testing environment with its version number. So, whenever you want to install any library that is required only in your development phase then you can find it in the dev Dependencies object. 

Use the below command to add more dev Dependencies in your project:

npm install <package name> --save-dev

Example: Installing the bootstrap module that we want to use in the development phase only and not in the production or testing phase for the project, use the following command:

npm install bootstrap --save-dev

package.json:

"devDependencies": {
"bootstrap": "^5.3.2",
}

Peer Dependencies:

In package.json file, there is an object called as peerDependencies and it consists of all the packages that are exactly required in the project or to the person who is downloading and the version numbers should also be the same. That is the reason they were named as peerDependencies. The best example is ‘react’ which is common in every project to run similarly. 

Note: These dependencies are not automatically installed. npm gives a warning message whenever there is a peer Dependency and these are different dependencies compared to the above-discussed dependencies.

Difference between Dependencies, devDependencies and peerDependencies:

Dependencies devDependencies peerDependencies
A dependency is a library that a project needs to function effectively. DevDependencies are the packages a developer needs during development.  A peer dependency specifies that our package is compatible with a particular version of an npm package. 
If a package doesn’t already exist in the node_modules directory, then it is automatically added.  As you install a package, npm will automatically install the dev dependencies. peerDependencies are not automatically installed. You need to manually modify your package.json file in order to add a Peer Dependency.
These are the libraries you need when you run your code. These dependencies may be needed at some point during the development process, but not during execution.  Peer dependencies are only encountered when you publish your own package, that is, when you develop code that will be used by other programs. 
Included in the final code bundle.  Included in the final code bundle .  Can be included only when you are publishing your own package. 

Dependencies can be added to your project by running :

npm i <package_name>

Dev dependencies can be added to your project by running :

npm i <package_name> 
--save-dev
Change the package.json file manually.

Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads