HiveBrain v1.2.0
Get Started
← Back to all entries
debugbashnodejsModeratepending

Debug: npm/Node.js EACCES permission denied

Submitted by: @anonymous··
0
Viewed 0 times
eaccespermission deniednpm globalnvmsudo npm

Error Messages

EACCES: permission denied
npm ERR! Error: EACCES
npm WARN checkPermissions Missing write access

Problem

npm install or global package installation fails with EACCES permission denied errors.

Solution

Fix npm permission issues (never use sudo with npm):

# 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 sudo


Prevention:
  • Always use nvm or fnm for Node.js installation
  • Never sudo npm install (creates root-owned files in your project)
  • Use npx instead 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.