Node.js Environment Setup - Installation and Configuration Guide
Setting up Node.js on your system is the first step to start developing server-side JavaScript applications. This comprehensive guide will walk you through installing Node.js on different operating systems and configuring your development environment.
System Requirements
Before installing Node.js, ensure your system meets the minimum requirements:
Supported Operating Systems
- Windows: Windows 10 or later (64-bit recommended)
- macOS: macOS 10.15 (Catalina) or later
- Linux: Ubuntu 18.04+, CentOS 7+, Debian 9+, or equivalent
Hardware Requirements
- RAM: Minimum 512MB, recommended 1GB or more
- Storage: At least 200MB free space
- Processor: Any modern processor (x64 architecture recommended)
Installation Methods
Method 1: Official Installer (Recommended)
The easiest way to install Node.js is using the official installer from the Node.js website.
Windows Installation
-
Download the Installer
- Visit nodejs.org
- Download the LTS (Long Term Support) version
- Choose the Windows Installer (.msi) for your system architecture
-
Run the Installer
# The installer will guide you through the process
# Make sure to check "Add to PATH" option -
Verify Installation
node --version
npm --version
macOS Installation
-
Download the Installer
- Visit nodejs.org
- Download the macOS Installer (.pkg)
-
Install Node.js
# Double-click the .pkg file and follow the installer
# The installer will automatically add Node.js to your PATH -
Verify Installation
node --version
npm --version
Linux Installation
-
Download the Installer
# Download the Linux binary
wget https://nodejs.org/dist/v18.17.0/node-v18.17.0-linux-x64.tar.xz -
Extract and Install
# Extract the archive
tar -xf node-v18.17.0-linux-x64.tar.xz
# Move to /usr/local
sudo mv node-v18.17.0-linux-x64 /usr/local/nodejs
# Add to PATH
echo 'export PATH=/usr/local/nodejs/bin:$PATH' >> ~/.bashrc
source ~/.bashrc -
Verify Installation
node --version
npm --version
Method 2: Package Managers
Using Homebrew (macOS)
# Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install Node.js
brew install node
# Verify installation
node --version
npm --version
Using APT (Ubuntu/Debian)
# Update package index
sudo apt update
# Install Node.js
sudo apt install nodejs npm
# Verify installation
node --version
npm --version
Using YUM (CentOS/RHEL)
# Install Node.js
sudo yum install nodejs npm
# Or for newer versions
sudo dnf install nodejs npm
# Verify installation
node --version
npm --version
Method 3: Node Version Manager (NVM)
NVM allows you to install and manage multiple Node.js versions.
Install NVM
Linux/macOS:
# Install NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# Reload shell configuration
source ~/.bashrc
# or
source ~/.zshrc
Windows:
# Install nvm-windows
# Download from: https://github.com/coreybutler/nvm-windows/releases
Using NVM
# List available Node.js versions
nvm list-remote
# Install latest LTS version
nvm install --lts
# Install specific version
nvm install 18.17.0
# Use specific version
nvm use 18.17.0
# Set default version
nvm alias default 18.17.0
# List installed versions
nvm list
Verification and Testing
Check Node.js Installation
# Check Node.js version
node --version
# Output: v18.17.0
# Check npm version
npm --version
# Output: 9.6.7
# Check installation path
which node
# Output: /usr/local/bin/node (Linux/macOS)
# Output: C:\Program Files\nodejs\node.exe (Windows)
Test Node.js Installation
Create a test file test.js
:
// test.js
console.log('Node.js is working correctly!');
console.log('Node.js version:', process.version);
console.log('Platform:', process.platform);
console.log('Architecture:', process.arch);
console.log('Current directory:', process.cwd());
console.log('Environment:', process.env.NODE_ENV || 'development');
Run the test:
node test.js
Expected output:
Node.js is working correctly!
Node.js version: v18.17.0
Platform: linux
Architecture: x64
Current directory: /home/user/projects
Environment: development
NPM Configuration
Global vs Local Packages
# Install package globally
npm install -g package-name
# Install package locally (in current project)
npm install package-name
# Install package as dev dependency
npm install --save-dev package-name
NPM Configuration
# Set default registry
npm config set registry https://registry.npmjs.org/
# Set proxy (if needed)
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
# View current configuration
npm config list
# Edit npm configuration
npm config edit
NPM Cache Management
# Clear npm cache
npm cache clean --force
# Verify cache
npm cache verify
# View cache location
npm config get cache
Environment Variables
Important Node.js Environment Variables
# Node.js environment
export NODE_ENV=development # or production
export NODE_PATH=/usr/local/lib/node_modules
# NPM configuration
export NPM_CONFIG_PREFIX=/usr/local
export NPM_CONFIG_CACHE=/tmp/.npm
# Path configuration
export PATH=$PATH:/usr/local/bin
Setting Environment Variables
Linux/macOS:
# Add to ~/.bashrc or ~/.zshrc
echo 'export NODE_ENV=development' >> ~/.bashrc
source ~/.bashrc
Windows:
# Set environment variable
set NODE_ENV=development
# Or permanently
setx NODE_ENV development
IDE and Editor Setup
Visual Studio Code
-
Install VS Code
- Download from code.visualstudio.com
-
Install Node.js Extensions
- Node.js Extension Pack
- JavaScript (ES6) code snippets
- npm Intellisense
- Node.js Modules Intellisense
-
Configure VS Code
// .vscode/settings.json
{
"nodejs.detectPnpm": true,
"npm.packageManager": "npm",
"javascript.preferences.includePackageJsonAutoImports": "auto",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
}
Other Popular Editors
WebStorm:
- Built-in Node.js support
- Integrated terminal and debugger
- NPM integration
Sublime Text:
- Install Node.js packages via Package Control
- Configure build systems for Node.js
Atom:
- Install Node.js packages
- Configure build tools
Troubleshooting Common Issues
Issue 1: Command Not Found
Problem: node: command not found
or npm: command not found
Solutions:
# Check if Node.js is in PATH
echo $PATH
# Add Node.js to PATH (Linux/macOS)
export PATH=$PATH:/usr/local/bin
# Restart terminal or reload shell configuration
source ~/.bashrc
Issue 2: Permission Errors
Problem: Permission denied when installing global packages
Solutions:
# Use npm with sudo (not recommended)
sudo npm install -g package-name
# Configure npm to use different directory
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Issue 3: Version Conflicts
Problem: Multiple Node.js versions installed
Solutions:
# Use NVM to manage versions
nvm use 18.17.0
# Or uninstall conflicting versions
# Windows: Use Add/Remove Programs
# Linux: sudo apt remove nodejs npm
# macOS: brew uninstall node
Issue 4: Network/Proxy Issues
Problem: Cannot download packages due to network restrictions
Solutions:
# Configure npm proxy
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
# Use different registry
npm config set registry https://registry.npmmirror.com/
# Disable SSL verification (not recommended for production)
npm config set strict-ssl false
Best Practices
Version Management
# Use LTS versions for production
nvm install --lts
nvm use --lts
# Keep npm updated
npm install -g npm@latest
# Use .nvmrc file for project-specific versions
echo "18.17.0" > .nvmrc
nvm use
Security Considerations
# Audit packages for vulnerabilities
npm audit
# Fix vulnerabilities
npm audit fix
# Use npm ci for production builds
npm ci
# Lock dependency versions
npm shrinkwrap
Performance Optimization
# Use npm cache
npm config set cache /tmp/.npm
# Increase network timeout
npm config set timeout 60000
# Use parallel installation
npm install --prefer-offline --no-audit
Development Environment Setup
Project Structure
# Create a new Node.js project
mkdir my-nodejs-project
cd my-nodejs-project
# Initialize package.json
npm init -y
# Install common dependencies
npm install express
npm install --save-dev nodemon
# Create basic project structure
mkdir src
mkdir tests
touch src/index.js
touch README.md
Package.json Configuration
{
"name": "my-nodejs-project",
"version": "1.0.0",
"description": "My Node.js project",
"main": "src/index.js",
"scripts": {
"start": "node src/index.js",
"dev": "nodemon src/index.js",
"test": "jest"
},
"keywords": ["nodejs", "express"],
"author": "Your Name",
"license": "MIT"
}
Next Steps
Now that you have Node.js installed and configured, you're ready to:
- Node.js - First Application - Build your first Node.js application
- Node.js - REPL Terminal - Learn the interactive Node.js shell
- Node.js - Package Manager (NPM) - Master package management
- Node.js - Command Line Options - Learn CLI parameters
Environment Setup Complete! You now have Node.js properly installed and configured. Ready to start building applications!