Installing Node.js and NPM on Your Local Machine
In this article
- 1What Are Node.js and NPM
- 2Prerequisites
- 3Installing Node.js and NPM
- 4Windows Installation
- 5macOS Installation
Node.js and NPM (Node Package Manager) are essential tools for modern JavaScript development. Node.js enables server-side scripting in JavaScript, while NPM helps manage your project's dependencies. This guide will walk you through installing, updating, and uninstalling Node.js and NPM on Windows, macOS, and Linux.
What Are Node.js and NPM
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. It allows you to run JavaScript code outside of the browser, making it popular for building scalable server-side applications.
NPM (Node Package Manager) is the default package manager that comes with Node.js, providing: A command-line client for installing and managing packages.
A large repository of public and private JavaScript packages (npm registry).
Prerequisites
Basic command-line interface (CLI) knowledge is helpful.
Familiarity with JavaScript (optional but useful).
Installing Node.js and NPM
Windows Installation
Option A: Direct Download
1 Go to the official Node.js download page.
2 Select either the 64-bit or 32-bit Windows Installer (.msi) based on your system.
3 Run the downloaded file and follow the prompts in the Node.js Setup Wizard.
Option B: Using a Package Manager
Chocolatey (For Admin users)
choco install nodejs
Scoop (For Non-Admin users)
scoop install nodejs
macOS Installation
Option A: Direct Download
1 Visit the official Node.js download page.
2 Download the macOS Installer (.pkg).
3 Run the .pkg file and follow the installation wizard.
Option B: Using Homebrew
brew install node
Linux Installation
Option A: Using Distribution's Package Manager
Debian/Ubuntu
sudo apt update && sudo apt install nodejs npm
Fedora/RHEL/CentOS
sudo dnf update && sudo dnf install nodejs npm
Option B: Using NodeSource (For Latest Versions)
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
(Replace setup_18.x with setup_16.x or setup_20.x as needed.)
Verifying Installation
Check if Node.js and NPM are installed correctly:
node -v # Outputs Node.js version\ nnpm -v # Outputs NPM version
Managing Multiple Node.js Versions
Use NVM (Node Version Manager) for macOS/Linux or nvm-windows to manage multiple Node.js versions.
nvm install 18 # Installs Node.js v18
nvm use 18 # Switch to Node.js v18
Updating Node.js and NPM
Windows
Node.js - Download and install the latest version from Node.js official site.
NPM - Run:
npm install npm@latest -g
macOS
Node.js (via Homebrew):
brew update && brew upgrade node
NPM:
npm install npm@latest -g
Linux
Debian/Ubuntu:
sudo apt update && sudo apt upgrade nodejs
npm install npm@latest -g
Fedora/RHEL/CentOS:
sudo dnf update && sudo dnf upgrade nodejs
npm install npm@latest -g
Uninstalling Node.js and NPM
Windows
1 Open Add or Remove Programs in the Control Panel.
2 Locate Node.js and click Uninstall.
macOS
If installed via .pkg file:
sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/npm*
If installed via Homebrew:
brew uninstall node
Linux
Debian/Ubuntu
sudo apt remove nodejs
Fedora/RHEL/CentOS
sudo dnf remove nodejs
NPM (All distros):
npm uninstall npm -g
Advanced NPM (Node Package Manager) Features & Usage
NPM is more than just a package manager--it provides powerful tools for handling dependencies, managing scripts, and optimizing workflows for advanced JavaScript development.
1. Managing Dependencies Efficiently
Semantic Versioning (SemVer): NPM follows SemVer to specify package versions, ensuring compatibility and stability.
-
^1.2.3Updates within the same major version. -
~1.2.3Updates within the same minor version. -
1.2.3Installs the exact version.
Installing Development vs. Production Dependencies:
npm install lodash --save # Adds to dependencies (default)
npm install eslint --save-dev # Adds to devDependencies
-
dependenciesare required for production. -
devDependenciesare only needed for development.
Locking Dependencies with package-lock.json: Ensures consistent installs across environments.
npm ci # Installs exact versions from package-lock.json
2. Automating Tasks with NPM Scripts
NPM allows you to define and run custom scripts in package.json:
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"build": "webpack --mode production",
"test": "jest"
}
Run a script with:
npm run dev
For predefined scripts (start, test), simply use:
npm start
npm test
3. Global vs. Local Packages
Installing Global Packages: Use -g to install tools globally, accessible system-wide:
npm install -g nodemon
Check globally installed packages:
npm list -g --depth=0
Using npx for Temporary Global Packages: npx runs CLI tools without a global install:
npx create-react-app my-app
4. Publishing and Managing Private Packages
Publishing a Package to npm Registry:
npm login # Authenticate to npm
npm publish # Upload package
Managing Scoped Packages for Private Projects:
npm install @my-org/my-package --save
Private packages require an npm organization or a paid plan.
5. Performance Optimization & Troubleshooting
Speeding Up Installs: Use cache for faster package retrieval:
npm cache clean --force
npm install --prefer-offline
Debugging & Diagnosing Issues:
npm doctor # Checks system for known issues
npm audit # Scans dependencies for security vulnerabilities
npm outdated # Lists outdated dependencies
Going Beyond: MERN Stack & MongoDB
Once Node.js and NPM are installed, you can explore: MongoDB for database management.
Express.js & React for the MERN (MongoDB, Express, React, Node.js) stack.
Building full-stack applications with modern JavaScript frameworks.
Read more: Advanced MERN Stack Manual
Conclusion
Congratulations! You've successfully installed, updated, and uninstalled Node.js and NPM. Now, you can start building robust JavaScript applications, manage dependencies efficiently, and stay ahead in modern web development.
Tip: Stay updated by checking the official Node.js documentation for more insights and troubleshooting tips.
Happy Coding!
Was this article helpful?
Your feedback helps us improve our documentation
Still need help? Submit a support ticket