debugbashnodejsModeratepending
Debug: npm/Node.js EACCES permission denied
Viewed 0 times
eaccespermission deniednpm globalnvmsudo npm
Error Messages
Problem
npm install or global package installation fails with EACCES permission denied errors.
Solution
Fix npm permission issues (never use sudo with npm):
Prevention:
# Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
# Fix 1: Use nvm (recommended - manages Node versions too)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
nvm install --lts
nvm use --lts
# Now npm install -g works without sudo
# Fix 2: Change npm's default directory
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
# Add to ~/.bashrc or ~/.zshrc:
export PATH=~/.npm-global/bin:$PATH
# Fix 3: Fix ownership (if nvm/prefix not an option)
sudo chown -R $(whoami) /usr/local/lib/node_modules
sudo chown -R $(whoami) /usr/local/bin
sudo chown -R $(whoami) /usr/local/share
# For project-level EACCES (node_modules):
rm -rf node_modules
npm install # Recreates with correct permissions
# Verify fix:
npm install -g typescript # Should work without sudoPrevention:
- Always use nvm or fnm for Node.js installation
- Never
sudo npm install(creates root-owned files in your project) - Use
npxinstead of global installs when possible
Why
Running npm with sudo creates root-owned files that subsequent npm commands can't modify, creating a cycle of permission errors.
Context
Setting up Node.js development environment
Revisions (0)
No revisions yet.