npm설정
npm EACCES 권한 거부 — permission denied (전역 설치)
npm error code EACCES / Error: EACCES: permission denied
한 줄 해결: 전역 설치 경로에 쓰기 권한이 없어 발생하며, sudo로 강제하기보다 npm 전역 경로를 사용자 디렉터리로 바꾸거나 nvm을 쓰는 것이 안전합니다.
이런 증상일 때
npm install -g 또는 전역 패키지 실행 시 EACCES permission denied가 납니다. 시스템 파이썬/노드 경로에 설치하려다 막히는 경우입니다.
원인
- 전역 node_modules가 시스템 디렉터리(/usr/local 등)에 있어 일반 사용자가 못 씀
- sudo로 설치했던 파일의 소유권이 root로 꼬임
- Node를 시스템 패키지로 설치해 권한 경계가 엄격
해결 방법
1
nvm으로 Node 관리(권장)
nvm은 Node와 전역 패키지를 사용자 홈에 두어 권한 문제가 사라집니다.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
nvm install --lts2
npm 전역 경로 변경
전역 prefix를 사용자 디렉터리로 바꿔 sudo 없이 설치합니다.
npm config set prefix ~/.npm-global
# PATH에 ~/.npm-global/bin 추가3
sudo는 지양
sudo npm install -g는 권한을 더 꼬이게 만들 수 있어 권장하지 않습니다. 이미 꼬였다면 소유권을 복구합니다.
sudo chown -R $(whoami) ~/.npm💡 예방: Node는 nvm으로 설치해 전역 패키지를 사용자 영역에 두면 EACCES를 근본적으로 피합니다.
npmEACCES권한nvm전역설치