맥북을 이용하고 있다면 npm 패키지를 설치하거나 실행할 때 위와 같은 에러 코드(npm errno -13 EACCES: permission deneid)가 뜨는 경우가 있다.
이럴 경우 항상 앞에sudo를 붙여야하는데, 이럴 경우 여러모로 불편한 사항이 많이 발생한다. 해당 에러는 현재 설치된node_modules가 관리자 권한이 없어서 항상sudo명령어를 실행해야한다. 이를 해결하는 3가지 방법을 알아보자.
1. chown 리눅스 명령어를 이용하여 파일 및 디렉토리를 소유권을 변경하는 방법
(node_modules 경로 확인 명령어)
npm config get prefix
(필자의 node_modules 설치된 경로)
/Users/사용자/.npm-global
(node_modules를 관리자 권한으로 변경)
sudo chown -R $(whoami)/Users/사용자/.npm-global
2. --unsafe-perm 명령어를 함께 쓴다.
sudo npm install -g [package-name] --unsafe-perm
3. 혹시 다른 프로젝트는 괜찮은데, 일부 프로젝트만 해당 에러가 발생하는 경우 (해당 프로젝트 node_modules 을 sudo npm install 로 설치하여 문제가 생긴 경우다)
필자의 경우 바보같이 3번처럼에러나는 프로젝트 node_modules 를 sudo 명령어와 함께 설치하여 이후에도 항상 sudo 명령어와 함께 실행해주었는데 이는 보안상으로 굉장히 위험한 일이기 때문에, 프로젝트 자체를 다시 지우고 재설치(clone)을 하여 다시 node_modules을 sudo 명령어 없이 그냥 npm install 해주었다.