npm EACCES: permission denied 해결
npm ERR! code EACCES — permission denied
증상
전역 설치(npm install -g) 중 권한 오류로 멈춥니다.
npm ERR! code EACCES
npm ERR! syscall mkdir
npm ERR! path /usr/local/lib/node_modules/...
npm ERR! errno -13
원인
npm이 쓰려는 디렉터리(/usr/local/...)에 현재 사용자의 쓰기 권한이 없습니다. macOS/Linux에서 시스템 경로에 전역 설치할 때 흔합니다.
해결
1) (권장) 전역 설치 경로를 홈 디렉터리로 변경
sudo 없이 안전하게 해결하는 방법입니다.
mkdir -p ~/.npm-global
npm config set prefix ~/.npm-global
그리고 셸 설정(~/.zshrc 또는 ~/.bashrc)에 PATH 추가:
export PATH=~/.npm-global/bin:$PATH
source ~/.zshrc # 적용
2) 버전 매니저 사용 (가장 깔끔)
nvm 등으로 Node를 사용자 홈에 설치하면 전역 권한 문제가 사라집니다.
nvm install --lts
3) 캐시 권한 문제라면
sudo chown -R $(whoami) ~/.npm
⚠️
sudo npm install -g는 당장은 되지만 권한이 꼬여 더 큰 문제를 부릅니다. 가능하면 prefix 변경이나 nvm으로 해결하세요. Windows에서는 보통 이 오류가 없고, 발생 시 관리자 권한 터미널로 실행합니다.