Node.js
Installation
Ubuntu/Debian (NodeSource Repository)
# Install Node.js 16
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install nodejs -y
# Or install Node.js 18
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install nodejs -y
# Or install Node.js 20
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install nodejs -y
# Verify installation
node --version
npm --versionCentOS/RHEL
# Install Node.js from repository
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install nodejs -y
# Or install from package
sudo yum install nodejs npm -y
# Verify installation
node --version
npm --versionUsing NVM (Recommended)
# Install NVM first (see NVM documentation)
nvm install 18
nvm use 18
# Verify
node --version
npm --versionFrom Source
# Download latest LTS
cd /tmp
wget https://nodejs.org/dist/v18.16.0/node-v18.16.0-linux-x64.tar.xz
tar -xf node-v18.16.0-linux-x64.tar.xz
# Install
sudo mv node-v18.16.0-linux-x64 /usr/local/node
sudo ln -s /usr/local/node/bin/node /usr/local/bin/node
sudo ln -s /usr/local/node/bin/npm /usr/local/bin/npm
# Verify
node --version
npm --versionNPM Configuration
Global Package Path
# Check global npm path
npm root -g
# Change global package directory
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
# Add to PATH
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrcFix Permissions
# Fix npm permissions issue
sudo chown -R $USER ~/.npm
# Or for specific path
sudo chown -R $USER:$USER /path/to/directory
# Fix global npm folder
sudo chown -R $USER /usr/local/lib/node_modulesnpm Package Management
Basic Commands
# Initialize project
npm init -y
# Install dependencies
npm install
npm i
# Install specific package
npm install package-name
# Install global package
npm install -g package-name
# Install from package-lock.json
npm ci
# Update packages
npm update
npm update -g
# Remove package
npm uninstall package-name
npm remove package-name
# List installed packages
npm list
npm ls
# List global packages
npm list -gVersion Management
# Check npm version
npm --version
# Update npm
npm install -g npm@latest
# Update Node.js
nvm install node
# Or update system Node.js via package manager
# Check for outdated packages
npm outdated
# Update all packages
npm update --saveProject Setup
Create New Project
# Initialize new project
mkdir my-app
cd my-app
npm init -y
# Install common dependencies
npm install express dotenv cors
# Install dev dependencies
npm install --save-dev nodemon eslint
# Create entry point
echo "console.log('Hello World');" > index.js
# Add npm scripts to package.json
# Edit package.json and add:
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js"
}
# Run application
npm start
# Or in development
npm run devPackage.json Scripts
{
"scripts": {
"start": "node server.js",
"dev": "nodemon server.js",
"build": "webpack --mode production",
"test": "jest",
"lint": "eslint .",
"format": "prettier --write ."
}
}Global Packages
# Install useful global packages
npm install -g nodemon # Auto-reload on file changes
npm install -g pm2 # Process manager
npm install -g concurrently # Run multiple processes
npm install -g http-server # Simple HTTP server
npm install -g webpack-cli # Webpack bundler
# List all global packages
npm list -g --depth=0
# Uninstall global package
npm uninstall -g package-namenpm Registry
# Check current registry
npm config get registry
# Change registry
npm config set registry https://registry.npmjs.org/
# Use Taobao mirror (for faster China access)
npm config set registry https://registry.npm.taobao.org
# Reset to default
npm config set registry https://registry.npmjs.org/
# View npm config
npm config listTroubleshooting
# Clear npm cache
npm cache clean --force
# Verify npm installation
npm doctor
# Fix npm permissions
sudo npm install -g npm
# Reinstall node_modules
rm -rf node_modules
rm package-lock.json
npm install
# Check npm logs
npm logs
# Debug mode
npm install --verbose
# Fix EACCES permission errors
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrcEnvironment Variables
# Create .env file
NODE_ENV=development
PORT=3000
DB_HOST=localhost
DB_USER=root
DB_PASS=password
# Install dotenv
npm install dotenv
# Load in application
require('dotenv').config();
console.log(process.env.PORT);