개발 블로깅/오늘의 TIL
[2019.09.01] 오늘의 TIL - npm install 중, permission denied 에러 해결방법
Hello이뇽
2019. 9. 1. 12:16
npm install 설치 중에 아래와 같은 에러메세지가 떴다.
Unhandled rejection Error: EACCES: permission denied, mkdir '~/.npm/_cacache/content-v2/...'
# 원인
현재 접속 중인 local 계정이, npm 설치 경로에 대한 권한을 가지고 있지 않아서 발생하는 문제이다.
macOS 경우, npm, homebrew 혹은 node를 'sudo'로 설치 했을 때 발생할 가능성이 크다.
# 해결 방법
방법은 우선 여러가지가 있다.
- 1. root로 되어있는 디렉토리 권한을 모든 User 그룹의 권한으로 변경.
- 2. npm install -g 로 설치되는 디렉토리 경로를 자신의 home directory로 변경.
- 3. 기타 등등...
나는 제일 쉬워 보이는 2번으로 해결했다.
# npm install -g 로 설치되는 디렉토리 경로를 현재 계정의 home directory로 변경하는 법
1. npm global directory 생성
$ mkdir ~/.npm-global
2. 해당 디렉토리에 npm config set 설정
$ npm config set prefix '~/.npm-global'
3. '.npm-global' 파일에 library path 설정 추가
$ nano ~/.profile
(편집기에서 아래 내용을 그대로 추가 후 저장)
export PATH=~/.npm-global/bin:$PATH
4. '.npm-global' 파일 설정 적용
$ source ~/.profile
이후에도 똑같은 'EACCES: permission denied' 에러가 발생하면, 아래 명령어로 default directory에 대한 권한을 다시한번 변경해준다.
$ sudo chown -R $USER:$GROUP ~/.npm
(위 명령어는 sudo를 꼭 붙인다!)
반응형