개발 블로깅/오늘의 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를 꼭 붙인다!)

 

반응형