An Introduction To Node Package Manager (NPM)
An Introduction To Node Package Manager(NPM)
NPM is written entirely in JavaScript(JS) and was developed by Isaac Z. Schlueter with inspiration from the shortcomings of other similar projects such as PEAR (PHP) and CPAN (Perl).
If you have installed Node.js in your machine then by default NPM has already been installed. TheNode.js comes with NPM.
You can check the version of your NPM using the following command.
You can create the package.json file using the following command:
npm init
If you have already the package.json file, but dependencies are not installed previously then you can install all the dependencies defined on your package.json file using the following command.
Following the Command you can install package json file:
npm install
If you want to install development dependency, then you need to follow this command line:
npm install --save-dev
# or
npm install -D
The difference between dependency and devDependencies are usually development tools
If you do not want to write install, then you can use i, and it will do the work for you:
npm i package-name
If you want to save the dependency inside the package.json file , then you need to add the save flag file:
npm i package-name --save
NPM will generate one folder called node_modules:
Usage
NPM can manage packages that are local dependencies of a particular project, as well as globally-installed JavaScript tools:
Attributes of Package.json
- name − name of the package
- version − version of the package
- description − description of the package
- homepage − homepage of the package
- author − author of the package
- contributors − name of the contributors to the package
- dependencies − list of dependencies. NPM automatically installs all the dependencies mentioned here in the node_module folder of the package.
- repository − repository type and URL of the package
- main − entry point of the package
- keywords − keywords
Updating NPM Packages
You can update NPM packages using the following command:
npm update
You can also update the specific package using the following command:
npm update package-name
If you are running an old version of NPM, then you can update it to the latest release by the following command from root:
sudo npm install npm -g
NPM Versioning
node package manager also manages the versioning so that you can specify any specific version of a package:
If you specify the exact version of the NPM libraries, then it also helps to keep everyone on the same version of a library, so that the whole team runs the same version and no conflicts occur until the package.json file is updated.
Semantic Versioning
- To install a package of a specific version, mention the full and exact version in the package.json file.
- To install the latest version of the package, mention “*” in front of the dependency or “latest”. This will find the latest stable version of the module and install it.
- To install any version (stable one) above a given version, mention it like in the example below:
“express”:”^4.1.1″. in the package.json file. The caret symbol (^) is used to tell the npm to find a version greater than 4.1.1 and install it.
Global vs. Local Installation
It created a node_modules directory in the current directory where it installed the express module.
npm install express
Now you can use this module in your js file as following −
var express = require('express');
npm install express -g
Uninstalling a Module
npm uninstall <package-name>
Use the following command to uninstall a Node.js module.
npm uninstall package-name
Search a Module
Search a package name using NPM:
npm search express
Running Tasks
npm <task-name>
json.file support specific command line.
For example:
{
"scripts": {
"start-dev": "node lib/server-development",
"start": "node lib/server-production"
},
}
It’s very common to use this feature to run Webpack:
{
"scripts": {
"watch": "webpack --watch --progress --colors --config webpack.conf.js",
"dev": "webpack --progress --colors --config webpack.conf.js",
"prod": "NODE_ENV=production webpack -p --config webpack.conf.js",
},
}
So instead of typing those extended commands, which are easy to forget or mistype, you can run:
$ npm watch
$ npm dev
$ npm prod
Hopefully this content helps you lot. Happy coding.