Npm
I. What is npm?
If we want to use additional packages not available in the Node core module, we can install them using npm, which is the Node package manager.
npm is automatically installed when we install Node.js. We can use npm to install, update or remove Node packages on our computer and our projects.
- Website: https://www.npmjs.com
- Command-line tool: npm
- Registries: public and private
The registries are where the packages (modules) are stored. Developers download packages from the npm registry and publish their packages to the registry.
Some essential npm packages:
- nodemon: automatically restart the server whenever changes are made
- express
II. Installing Node.js Modules with npm
There are two ways to install a module:
1. Globally
When we install a package globally, it means that we not only install it for our current project, but we can also use it anywhere on our computer.
The packages will be installed in /usr/local.
npm install --global module-name
npm i -g module-name
i is just an alias to install. There’s no difference between i and install.
Example: To install nodemon
npm install -g nodemon
To see the globally installed packages, run this command.
npm ls --depth=0 -global
2. Locally:
We install most of our projects’ dependencies locally.
These modules go into the node_modules directory of the local project:
npm install module-name
npm i module-name
To see the installed npm packages with their version, the command is
npm ls --depth=0
III. Updating packages
1. Updating local packages
In your project root directory, run the update command:
npm update
To test the update, run the outdated command. There should not be any output.
npm outdated
2. Updating global packages
Check which global packages need updating
To see which global packages need to be updated, run the following:
npm outdated -g --depth=0
Update a single global package
To update a single global package on the command line, run the following:
npm update -g <package_name>
Updating all globally-installed packages
To update all global packages, on the command line, run:
npm update -g
IV. Package.json file
The package.json file keeps track of all packages we’ve installed locally to our project and metadata about the project, such as the descriptions, license, location, dependencies, and scripts to build, launch and run.
We can configure many properties, such as:
- name
- version number
- dependencies
- license
- scripts
1. Creating package.json
To use 3rd-party packages in our project, we need to create a package.json file.
To create a package.json file, run the npm init command.
$ npm init
This will initialize a package.json file.
It will ask us a series of questions about the project, giving a default value in the bracket. We can press “Enter” to accept them or override them by typing a new one.
If you are okay with the default answers to these questions, you can skip the questions and answer yes to all of them automatically by using the -y flag:
npm init -y
- To see JSON documentation, run
npm help json. - To install a package and save it as a dependency in the package.json file, run:
npm install <pkg>
2. Example
For example, to install express:
- In a new project, create a package.json first by running
npm init -yto initialize the project. - In the project root folder (main folder), run:
npm install express. - In a file where you want to use express, import it:
const express = require("express");
- We can also use the
npm install express@latestcommand line to upgrade to the latest module.
3. Listing and Removing Modules
To list what modules are installed, run npm ls from your root project location (where you have package.json and node_modules). It will display a tree of dependencies of this current project.
To list all globally installed modules, run: npm ls -g.
To remove an npm module, use the rm command: npm rm mysql.
To remove a global module, apply the global flag: npm rm mysql -g.
4. node_modules folder
When we’ve installed a package locally, it will create a node_modules folder that contains all the files and packages that are needed for the package and the dependencies of that package.
However, when people upload their projects on Github, they won’t include the folder because its size is large. So when we download that project, we may need to install that folder again.
We can do it by running this command:
npm install
This command will install all the dependencies listed in the package.json file.