How to install Node.js and npm on your computer
How to Install Node.js and npm on Your Computer
Table of Contents
1. [Introduction](#introduction)
2. [What are Node.js and npm?](#what-are-nodejs-and-npm)
3. [Prerequisites](#prerequisites)
4. [Installation Methods Overview](#installation-methods-overview)
5. [Installing Node.js and npm on Windows](#installing-nodejs-and-npm-on-windows)
6. [Installing Node.js and npm on macOS](#installing-nodejs-and-npm-on-macos)
7. [Installing Node.js and npm on Linux](#installing-nodejs-and-npm-on-linux)
8. [Verifying Your Installation](#verifying-your-installation)
9. [Understanding Node.js Versions](#understanding-nodejs-versions)
10. [Managing Multiple Node.js Versions](#managing-multiple-nodejs-versions)
11. [Common Installation Issues and Troubleshooting](#common-installation-issues-and-troubleshooting)
12. [Best Practices and Tips](#best-practices-and-tips)
13. [Next Steps After Installation](#next-steps-after-installation)
14. [Conclusion](#conclusion)
Introduction
Node.js has revolutionized JavaScript development by enabling server-side programming and creating a vast ecosystem of tools and libraries. Whether you're a beginner starting your coding journey or an experienced developer setting up a new development environment, installing Node.js and npm correctly is crucial for modern web development.
This comprehensive guide will walk you through the entire process of installing Node.js and npm on Windows, macOS, and Linux systems. You'll learn multiple installation methods, understand version management, troubleshoot common issues, and discover best practices that will set you up for success in your development projects.
By the end of this article, you'll have a fully functional Node.js and npm installation, understand how to manage different versions, and be equipped with the knowledge to maintain your development environment effectively.
What are Node.js and npm?
Node.js
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine that allows you to run JavaScript code outside of a web browser. It enables developers to use JavaScript for server-side programming, creating web servers, command-line tools, and desktop applications. Node.js is known for its event-driven, non-blocking I/O model, making it lightweight and efficient for building scalable network applications.
npm (Node Package Manager)
npm is the default package manager for Node.js and the world's largest software registry. It allows developers to:
- Install and manage JavaScript packages and dependencies
- Share and distribute code packages
- Manage project dependencies and versions
- Run scripts and automate development tasks
When you install Node.js, npm is automatically included, providing you with access to over one million packages in the npm registry.
Prerequisites
Before installing Node.js and npm, ensure your system meets the following requirements:
System Requirements
- Windows: Windows 10 or later (64-bit recommended)
- macOS: macOS 10.15 (Catalina) or later
- Linux: Most modern distributions (Ubuntu 18.04+, CentOS 7+, Debian 9+)
Hardware Requirements
- RAM: Minimum 4GB (8GB recommended for development)
- Storage: At least 1GB free space for Node.js installation
- Processor: Any modern 64-bit processor
Administrative Access
You'll need administrative privileges on your system to install Node.js and npm globally.
Installation Methods Overview
There are several ways to install Node.js and npm:
1. Official Installer: Download from the official Node.js website (recommended for beginners)
2. Package Manager: Use system package managers like Homebrew, apt, or yum
3. Version Manager: Use tools like nvm (Node Version Manager) for managing multiple versions
4. Source Code: Compile from source (advanced users)
Each method has its advantages, and we'll cover the most practical approaches for each operating system.
Installing Node.js and npm on Windows
Method 1: Using the Official Installer (Recommended)
Step 1: Download the Installer
1. Visit the official Node.js website at [nodejs.org](https://nodejs.org)
2. You'll see two download options:
- LTS (Long Term Support): Recommended for most users
- Current: Latest features but less stable
3. Click on the LTS version to download the Windows Installer (.msi file)
Step 2: Run the Installer
1. Locate the downloaded `.msi` file in your Downloads folder
2. Right-click and select "Run as administrator"
3. The Node.js Setup Wizard will open
Step 3: Installation Process
1. Click "Next" to begin the installation
2. Accept the End-User License Agreement
3. Choose the installation directory (default is recommended: `C:\Program Files\nodejs\`)
4. Select components to install:
- Node.js runtime: Core Node.js files (required)
- npm package manager: Package manager (required)
- Online documentation shortcuts: Helpful documentation links
- Add to PATH: Automatically adds Node.js to your system PATH (recommended)
5. Click "Next" and then "Install"
6. Wait for the installation to complete
7. Click "Finish" to exit the installer
Method 2: Using Chocolatey Package Manager
If you have Chocolatey installed on your Windows system:
```powershell
Install Node.js and npm
choco install nodejs
Install a specific version
choco install nodejs --version=18.17.0
```
Method 3: Using Windows Package Manager (winget)
For Windows 10 version 1809 or later:
```powershell
Install the latest LTS version
winget install OpenJS.NodeJS
Install a specific version
winget install OpenJS.NodeJS --version 18.17.0
```
Installing Node.js and npm on macOS
Method 1: Using the Official Installer
Step 1: Download the Installer
1. Visit [nodejs.org](https://nodejs.org)
2. Download the macOS Installer (.pkg file)
3. Choose the LTS version for stability
Step 2: Install Node.js
1. Double-click the downloaded `.pkg` file
2. Follow the installation wizard:
- Click "Continue" through the introduction
- Accept the software license agreement
- Select the installation location (default is recommended)
- Enter your administrator password when prompted
3. Click "Install" and wait for completion
4. Click "Close" when finished
Method 2: Using Homebrew (Recommended for Developers)
Homebrew is a popular package manager for macOS that makes installing and managing software easier.
Step 1: Install Homebrew (if not already installed)
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
Step 2: Install Node.js and npm
```bash
Install the latest LTS version
brew install node
Install a specific version
brew install node@18
Link a specific version
brew link node@18
```
Step 3: Verify Homebrew Installation
```bash
Check Homebrew installation
brew doctor
Update Homebrew
brew update
```
Method 3: Using MacPorts
If you prefer MacPorts over Homebrew:
```bash
Install Node.js
sudo port install nodejs18 +universal
Install npm (if not included)
sudo port install npm8
```
Installing Node.js and npm on Linux
Ubuntu/Debian Systems
Method 1: Using apt Package Manager
```bash
Update package index
sudo apt update
Install Node.js and npm
sudo apt install nodejs npm
Install specific version from NodeSource repository
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs
```
Method 2: Using Snap Package Manager
```bash
Install Node.js (includes npm)
sudo snap install node --classic
Install specific version
sudo snap install node --channel=18/stable --classic
```
CentOS/RHEL/Fedora Systems
Using yum/dnf Package Manager
```bash
For CentOS/RHEL (yum)
sudo yum install nodejs npm
For Fedora (dnf)
sudo dnf install nodejs npm
Using NodeSource repository for latest versions
curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash -
sudo yum install nodejs
```
Arch Linux
```bash
Install Node.js and npm
sudo pacman -S nodejs npm
```
Compiling from Source (Advanced)
For users who need the latest features or custom configurations:
```bash
Download source code
wget https://nodejs.org/dist/v18.17.0/node-v18.17.0.tar.gz
tar -xzf node-v18.17.0.tar.gz
cd node-v18.17.0
Configure and compile
./configure
make -j4
sudo make install
```
Verifying Your Installation
After installing Node.js and npm, it's crucial to verify that everything is working correctly.
Check Node.js Installation
```bash
Check Node.js version
node --version
or
node -v
Expected output: v18.17.0 (or your installed version)
```
Check npm Installation
```bash
Check npm version
npm --version
or
npm -v
Expected output: 9.6.7 (or your installed version)
```
Test Node.js Functionality
Create a simple test file to ensure Node.js is working:
```bash
Create a test file
echo 'console.log("Hello, Node.js!");' > test.js
Run the test file
node test.js
Expected output: Hello, Node.js!
```
Check Installation Paths
```bash
Check where Node.js is installed
which node
Check where npm is installed
which npm
View Node.js installation details
node -p "process.versions"
```
Understanding Node.js Versions
Version Numbering System
Node.js follows semantic versioning (semver):
- Major.Minor.Patch (e.g., 18.17.0)
- Major: Breaking changes
- Minor: New features (backward compatible)
- Patch: Bug fixes
Release Types
LTS (Long Term Support)
- Stable releases with 18 months of active support
- Recommended for production applications
- Even-numbered major versions (14, 16, 18, 20)
Current
- Latest features and improvements
- May have breaking changes
- Odd-numbered major versions during development
Choosing the Right Version
- For beginners: Use the latest LTS version
- For production: Always use LTS versions
- For experimentation: Current version for latest features
Managing Multiple Node.js Versions
Using nvm (Node Version Manager)
nvm allows you to install and switch between multiple Node.js versions easily.
Installing nvm on macOS/Linux
```bash
Download and install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
Restart your terminal or run:
source ~/.bashrc
```
Installing nvm on Windows
Use nvm-windows:
1. Download from [GitHub releases](https://github.com/coreybutler/nvm-windows/releases)
2. Run the installer as administrator
3. Restart your command prompt
Using nvm Commands
```bash
List available Node.js versions
nvm list-remote
Install specific version
nvm install 18.17.0
nvm install 16.20.0
List installed versions
nvm list
Switch to specific version
nvm use 18.17.0
Set default version
nvm alias default 18.17.0
Install and use latest LTS
nvm install --lts
nvm use --lts
```
Using n (Node.js Version Manager)
Alternative to nvm for macOS/Linux:
```bash
Install n globally
sudo npm install -g n
Install latest LTS
sudo n lts
Install specific version
sudo n 18.17.0
List installed versions
n list
Switch versions interactively
n
```
Common Installation Issues and Troubleshooting
Windows-Specific Issues
Issue 1: Permission Errors
Problem: "Access is denied" errors during installation
Solution:
```powershell
Run Command Prompt as Administrator
Or use PowerShell with elevated privileges
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
```
Issue 2: PATH Not Updated
Problem: `node` command not recognized
Solution:
1. Check if Node.js is in PATH:
```cmd
echo %PATH%
```
2. Manually add to PATH:
- Open System Properties → Advanced → Environment Variables
- Add `C:\Program Files\nodejs\` to PATH variable
Issue 3: npm Permission Issues
Problem: Permission errors when installing global packages
Solution:
```powershell
Change npm's default directory
mkdir "%APPDATA%\npm"
npm config set prefix "%APPDATA%\npm"
```
macOS-Specific Issues
Issue 1: Xcode Command Line Tools Missing
Problem: Installation fails due to missing development tools
Solution:
```bash
Install Xcode Command Line Tools
xcode-select --install
```
Issue 2: Permission Denied with Homebrew
Problem: Permission errors during Homebrew installation
Solution:
```bash
Fix Homebrew permissions
sudo chown -R $(whoami) /usr/local/share/zsh /usr/local/share/zsh/site-functions
chmod u+w /usr/local/share/zsh /usr/local/share/zsh/site-functions
```
Issue 3: Node.js Not Found After Installation
Problem: Terminal doesn't recognize `node` command
Solution:
```bash
Add to shell profile (.zshrc or .bash_profile)
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
```
Linux-Specific Issues
Issue 1: Outdated Package Repositories
Problem: Installing old versions of Node.js
Solution:
```bash
Add NodeSource repository for latest versions
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs
```
Issue 2: npm Permission Issues
Problem: Global package installation requires sudo
Solution:
```bash
Change npm's default directory
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.profile
source ~/.profile
```
Issue 3: Node.js Binary Name Conflict
Problem: `node` command conflicts with other packages
Solution:
```bash
Create symbolic link
sudo ln -s /usr/bin/nodejs /usr/bin/node
Or install nodejs-legacy package
sudo apt-get install nodejs-legacy
```
General Troubleshooting Steps
Clean Installation
If you encounter persistent issues:
```bash
Completely remove Node.js and npm
Windows: Use Control Panel → Programs and Features
macOS: Remove /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man//node.}
Linux: sudo apt-get remove nodejs npm
Clear npm cache
npm cache clean --force
Remove npm configuration
rm -rf ~/.npm
rm -rf ~/.npmrc
Reinstall Node.js
```
Verify System Requirements
```bash
Check system architecture
uname -m
Check available disk space
df -h
Check memory
free -h # Linux
vm_stat # macOS
```
Best Practices and Tips
Version Management Best Practices
1. Use LTS Versions for Production
- Always deploy applications with LTS versions
- Test thoroughly before upgrading major versions
2. Keep Development and Production Versions Aligned
```bash
# Document Node.js version in package.json
{
"engines": {
"node": ">=18.0.0",
"npm": ">=9.0.0"
}
}
```
3. Use .nvmrc Files for Project-Specific Versions
```bash
# Create .nvmrc file in project root
echo "18.17.0" > .nvmrc
# Use version specified in .nvmrc
nvm use
```
npm Configuration Best Practices
Set Up npm Properly
```bash
Set your npm author info
npm config set init-author-name "Your Name"
npm config set init-author-email "your.email@example.com"
npm config set init-license "MIT"
Configure npm registry (if using private registry)
npm config set registry https://registry.npmjs.org/
Set up npm for faster installations
npm config set progress false
npm config set loglevel warn
```
Security Best Practices
```bash
Enable two-factor authentication
npm profile enable-2fa auth-and-writes
Audit packages for vulnerabilities
npm audit
Fix vulnerabilities automatically
npm audit fix
Check for outdated packages
npm outdated
```
Development Environment Setup
Global Package Recommendations
```bash
Essential development tools
npm install -g nodemon # Auto-restart Node.js applications
npm install -g http-server # Simple HTTP server
npm install -g live-server # Development server with live reload
npm install -g pm2 # Process manager for Node.js
npm install -g eslint # JavaScript linter
npm install -g prettier # Code formatter
```
IDE and Editor Integration
- Visual Studio Code: Install Node.js extensions
- WebStorm: Configure Node.js interpreter
- Atom: Install relevant packages for Node.js development
Performance Optimization
npm Performance Tips
```bash
Use npm ci for faster, reliable, reproducible builds
npm ci
Enable package-lock.json for consistent installations
npm config set package-lock true
Use npm's built-in cache
npm config set cache /path/to/cache/directory
Optimize npm shrinkwrap
npm shrinkwrap
```
Node.js Performance Monitoring
```bash
Monitor Node.js performance
node --inspect app.js
Profile memory usage
node --inspect --inspect-brk app.js
```
Next Steps After Installation
1. Create Your First Node.js Project
```bash
Create project directory
mkdir my-first-node-project
cd my-first-node-project
Initialize npm project
npm init -y
Create main application file
echo 'console.log("Hello, World!");' > index.js
Run your application
node index.js
```
2. Learn Essential npm Commands
```bash
Install dependencies
npm install express
npm install --save-dev jest
Install global packages
npm install -g create-react-app
Update packages
npm update
Remove packages
npm uninstall express
```
3. Explore the Node.js Ecosystem
- Web Frameworks: Express.js, Koa.js, Fastify
- Testing: Jest, Mocha, Chai
- Build Tools: Webpack, Rollup, Vite
- Databases: MongoDB, PostgreSQL, Redis drivers
- Utilities: Lodash, Moment.js, Axios
4. Set Up Development Workflow
```bash
Create package.json scripts
{
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"test": "jest",
"lint": "eslint .",
"format": "prettier --write ."
}
}
```
5. Learn About Package Management
- Understanding semantic versioning
- Managing dependencies vs. devDependencies
- Using package-lock.json effectively
- Publishing your own packages
Conclusion
Installing Node.js and npm is the first crucial step in your JavaScript development journey. This comprehensive guide has covered multiple installation methods for Windows, macOS, and Linux, along with troubleshooting common issues and implementing best practices.
Key takeaways from this guide:
1. Choose the Right Installation Method: Official installers are great for beginners, while package managers and version managers offer more flexibility for advanced users.
2. Use LTS Versions: For stability and long-term support, always prefer LTS versions for production applications.
3. Verify Your Installation: Always test your installation with simple commands and create test files to ensure everything works correctly.
4. Manage Multiple Versions: Tools like nvm make it easy to switch between different Node.js versions for different projects.
5. Follow Best Practices: Proper configuration, security measures, and development environment setup will save you time and prevent issues later.
6. Keep Learning: Node.js and npm are powerful tools with vast ecosystems. Continue exploring packages, frameworks, and development patterns.
With Node.js and npm properly installed and configured, you're now ready to dive into server-side JavaScript development, build web applications, create command-line tools, or explore the countless possibilities that the Node.js ecosystem offers. Remember to keep your installation updated, follow security best practices, and don't hesitate to refer back to this guide whenever you need to set up Node.js on a new system.
The world of Node.js development awaits – start building amazing applications today!