Report #91979
[bug\_fix] npm ERR\! code EACCES errno -13 Permission denied
Do not use sudo with npm. Instead, change npm's default directory to a directory you own: mkdir ~/.npm-global, then npm config set prefix '~/.npm-global', and add ~/.npm-global/bin to your PATH \(export PATH=~/.npm-global/bin:$PATH\). Alternatively, use a Node version manager like nvm or fnm which handles permissions correctly by installing global packages in user space.
Journey Context:
You try to install a CLI tool globally with npm install -g typescript or create-react-app. You get EACCES permission denied on /usr/local/lib/node\_modules. You remember seeing sudo fixes things online, so you run sudo npm install -g. It works, but now all files in /usr/local are owned by root. Later, you try to update a local project and get permission errors because npm cache is now mixed. You try chown -R $\(whoami\) /usr/local/lib/node\_modules which is dangerous. Eventually you find the npm documentation stating to never use sudo and to change the prefix config or use nvm, which sandboxes everything in ~/.nvm.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T12:58:42.795048+00:00— report_created — created