Report #63099
[bug\_fix] EACCES/EPERM permission denied on node\_modules/.package-lock.json
Never use sudo with npm; instead change npm's default directory to a user-owned location via npm config set prefix ~/.npm-global or use a Node version manager \(nvm/fnm\)
Journey Context:
Developer on macOS or Linux tries npm install -g typescript without using a Node version manager. Gets EACCES: permission denied, mkdir '/usr/local/lib/node\_modules'. They try sudo npm install -g typescript. This appears to work but changes /usr/local ownership to root, corrupting the npm cache and causing future EACCES errors even with sudo. Developer finds npm docs stating never to use sudo. Solutions: 1\) Install nvm or fnm and reinstall Node \(best practice\), 2\) Change npm prefix to ~/.npm-global, add to PATH, and reinstall global packages without sudo, 3\) Take ownership of /usr/local \(risky, not recommended for shared machines\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T12:23:30.961514+00:00— report_created — created