The world of web development is constantly evolving, and at its core, JavaScript has emerged as a dominant force. Managing and utilizing the vast ecosystem of JavaScript libraries and frameworks is crucial for efficient development. This is where Node.js and its package manager, npm (Node Package Manager), become indispensable tools. This guide will walk you through the process of installing npm, ensuring you have the foundational tools to leverage the power of JavaScript packages for your projects.
Understanding Node.js and npm
Before diving into the installation process, it’s important to understand the relationship between Node.js and npm.

Node.js: The JavaScript Runtime Environment
Node.js is an open-source, cross-platform JavaScript runtime environment that allows developers to execute JavaScript code outside of a web browser. Initially, JavaScript was primarily used for client-side scripting in web pages. Node.js revolutionized this by enabling server-side JavaScript development, making it possible to build scalable network applications, command-line tools, and much more using a single language. It accomplishes this by using Google’s V8 JavaScript engine, the same engine that powers Google Chrome, and providing a set of modules for various tasks, such as file system operations, network communication, and cryptographic functions.
npm: The JavaScript Package Manager
npm is the default package manager for Node.js. It is the world’s largest software registry and is bundled with every Node.js installation. npm allows developers to easily:
- Discover and Install Packages: Access a vast repository of open-source JavaScript libraries, frameworks, and tools. These are referred to as “packages.”
- Manage Dependencies: Track and manage the external packages that your project relies on. This ensures that your project has the correct versions of all necessary components.
- Share and Distribute Code: Publish your own JavaScript packages to the npm registry for others to use.
- Automate Tasks: Utilize npm scripts to automate common development tasks like building, testing, and deploying your applications.
Essentially, npm acts as a central hub for JavaScript code, making it incredibly easy to incorporate pre-built functionalities into your projects, thereby accelerating development and promoting code reuse.
Installing Node.js and npm
npm is bundled with Node.js. Therefore, the primary step to get npm on your system is to install Node.js. This process is straightforward and varies slightly depending on your operating system.
Installation on Windows
-
Download the Installer:
- Navigate to the official Node.js website: https://nodejs.org/.
- On the homepage, you will typically see two download options: LTS (Long Term Support) and Current. For most users, the LTS version is recommended as it is more stable and has a longer support cycle.
- Click on the “Windows Installer” link for the LTS version to download the
.msifile.
-
Run the Installer:
- Locate the downloaded
.msifile and double-click it to start the installation wizard. - Follow the on-screen prompts. You will typically need to accept the license agreement, choose an installation directory (the default is usually fine), and select the components to install.
- Ensure that “npm package manager” is selected for installation. This is usually selected by default.
- The installer will offer to install essential tools for native modules, such as Python and Visual Studio Build Tools. It’s generally a good idea to check this option, as it can simplify the installation of certain npm packages that require compilation.
- Locate the downloaded
-
Verify Installation:
- Once the installation is complete, open the Command Prompt (search for
cmdin the Start menu) or PowerShell. - Type the following commands and press Enter after each one to verify that Node.js and npm have been installed correctly:
bash
node -v
npm -v
- You should see the version numbers of Node.js and npm printed in the console, indicating a successful installation.
- Once the installation is complete, open the Command Prompt (search for
Installation on macOS
-
Download the Installer:
- Go to the official Node.js website: https://nodejs.org/.
- Download the “macOS Installer” for the LTS version. This will be a
.pkgfile.
-
Run the Installer:
- Open the downloaded
.pkgfile. - The Node.js installation wizard will launch. Click “Continue” through the introduction, license, and installation type screens.
- Click “Install” and enter your administrator password when prompted.
- The installer will copy the necessary files to your system.
- Open the downloaded
-
Verify Installation:
- Open the Terminal application (found in
Applications/Utilitiesor by searching with Spotlight). - Execute the following commands:
bash
node -v
npm -v
- The installed versions of Node.js and npm will be displayed, confirming the installation.
- Open the Terminal application (found in
Installation on Linux
There are several ways to install Node.js and npm on Linux, with using a package manager or a version manager being the most common and recommended methods.
Using a Package Manager (e.g., apt for Debian/Ubuntu)
-
Update Package Lists:
- Open your terminal and run:
bash
sudo apt update
- Open your terminal and run:
-
Install Node.js and npm:
- Install Node.js and npm using the following command:
bash
sudo apt install nodejs npm
- This command installs both Node.js and npm from the default repositories.
- Install Node.js and npm using the following command:
-
Verify Installation:
- In the terminal, run:
bash
node -v
npm -v
- The versions will be displayed. Note: The versions available in default repositories might not always be the latest. For the most recent versions, consider using Node Version Manager.
- In the terminal, run:
Using Node Version Manager (nvm)
Node Version Manager (nvm) is a script that allows you to manage multiple active Node.js versions on your system. This is particularly useful for developers who need to switch between different Node.js versions for various projects.
-
Install nvm:
- Open your terminal and run the nvm installation script from the official nvm GitHub repository (check the repo for the latest version):
bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
- After installation, you might need to close and reopen your terminal, or run
source ~/.bashrc(or~/.zshrcif you use Zsh) for the changes to take effect.
- Open your terminal and run the nvm installation script from the official nvm GitHub repository (check the repo for the latest version):
-
Install Node.js and npm:
- Once nvm is installed, you can install the latest LTS version of Node.js (which includes npm) with:
bash
nvm install --lts
- You can also install a specific version, for example:
bash
nvm install 20.11.1 # Replace with the desired version
- To use a particular installed version, run:
bash
nvm use --lts # Or the specific version number
- Once nvm is installed, you can install the latest LTS version of Node.js (which includes npm) with:
-
Verify Installation:
- In the terminal, run:
bash
node -v
npm -v
- This will confirm the installation and the active Node.js version.
- In the terminal, run:
Initializing a New Project with npm
Once you have npm installed, you can begin using it to manage your projects. The first step for any new Node.js project is to initialize it.
Creating a Project Directory
First, create a new directory for your project. Open your terminal or command prompt and navigate to where you want to create your project. Then, create a new directory:
mkdir my-new-project
cd my-new-project
Initializing npm
Navigate into your new project directory. Inside this directory, you will run the npm init command. This command creates a package.json file, which is the heart of any npm project. This file stores metadata about your project, including its name, version, dependencies, and scripts.
npm init
This command will walk you through a series of questions to populate the package.json file:
package name: The name of your project.version: The initial version of your project.description: A brief description of your project.entry point: The main file of your project (e.g.,index.js).test command: The command to run your tests.git repository: The URL of your Git repository.keywords: Relevant keywords for your project.author: Your name or organization.license: The license under which your project is distributed.

You can press Enter to accept the default values for most of these questions or provide your own input. To quickly generate a package.json file with all default settings, you can use the -y flag:
npm init -y
This will create a package.json file with default values, which you can later edit to customize your project’s configuration.
Installing Packages with npm
With your project initialized, you can now start adding external libraries and tools using npm.
Installing a Package
To install a package, use the npm install command followed by the package name. For example, to install the popular utility library Lodash:
npm install lodash
This command will:
- Download the latest version of the
lodashpackage from the npm registry. - Save it into a
node_modulesdirectory within your project. - Add
lodashas a dependency in yourpackage.jsonfile. - Create a
package-lock.jsonfile (or update it if it exists), which records the exact versions of all installed packages and their dependencies. This ensures that you can recreate the exact same environment later, which is crucial for collaborative development and deployment.
Installing Packages as Dependencies
By default, npm install <package-name> installs packages as dependencies. These are packages that your application needs to run.
Installing Development Dependencies
Some packages are only needed during the development process (e.g., testing frameworks, build tools, linters). These are called devDependencies. To install a package as a devDependency, use the --save-dev or -D flag:
npm install --save-dev jest
# or
npm install -D jest
This will add the jest package to the devDependencies section of your package.json file.
Installing Packages Globally
Some command-line tools are useful across multiple projects and don’t need to be tied to a specific project’s node_modules directory. You can install these globally using the -g flag:
npm install -g http-server
This makes the http-server command available from any directory in your terminal.
Managing Your Project’s Dependencies
npm provides commands to manage the packages your project relies on.
Updating Packages
To update all packages to their latest compatible versions (as defined by the version ranges in your package.json), you can run:
npm update
To update a specific package, you would typically uninstall and then reinstall it with the desired version or use npm install <package-name>@latest.
Uninstalling Packages
To remove a package from your project, use the npm uninstall command:
npm uninstall lodash
This command will remove the package from the node_modules directory and update your package.json and package-lock.json files accordingly. To uninstall a development dependency, use the --save-dev or -D flag:
npm uninstall --save-dev jest
To uninstall a globally installed package, use the -g flag:
npm uninstall -g http-server
Viewing Installed Packages
To see a list of all packages installed in your project, you can use:
npm list
This will display a tree-like structure of your project’s dependencies. For a more concise view, you can use:
npm list --depth=0
This command shows only the top-level packages installed in your project.

Conclusion
Mastering npm is fundamental for any developer working with JavaScript. By understanding how to install Node.js and npm, initialize projects, and manage packages effectively, you gain the ability to tap into the vast and ever-growing JavaScript ecosystem. This allows for more efficient development, better code organization, and the leveraging of powerful tools and libraries that drive modern web and application development. The commands and concepts outlined in this guide serve as your starting point for building robust and scalable applications with the power of npm.
