흰 스타렉스에서 내가 내리지

리액트 배포 =- Error: EACCES: permission denied 문제 해결 방법 본문

Errors

리액트 배포 =- Error: EACCES: permission denied 문제 해결 방법

주씨. 2022. 12. 13. 11:32
728x90

node-sass 를 설치하려고 sudo npm install -g node-sass 를 하니

 

/usr/local/bin/node-sass -> /usr/local/lib/node_modules/node-sass/bin/node-sass

> node-sass@4.13.0 install /usr/local/lib/node_modules/node-sass
> node scripts/install.js

Unable to save binary /usr/local/lib/node_modules/node-sass/vendor/linux-x64-72 : Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/node-sass/vendor'
    at Object.mkdirSync (fs.js:823:3)
    at sync (/usr/local/lib/node_modules/node-sass/node_modules/mkdirp/index.js:71:13)
    at Function.sync (/usr/local/lib/node_modules/node-sass/node_modules/mkdirp/index.js:77:24)
    at checkAndDownloadBinary (/usr/local/lib/node_modules/node-sass/scripts/install.js:114:11)
    at Object.<anonymous> (/usr/local/lib/node_modules/node-sass/scripts/install.js:157:1)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1047:10) {
  errno: -13,
  syscall: 'mkdir',
  code: 'EACCES',
  path: '/usr/local/lib/node_modules/node-sass/vendor'
}

 

이런 에러를 내뱉으며 진행이 되질 않는다.

-g 옵션을 통해 global 설치를 할 경우에만 문제가 발생하는것 같다.

sudo로 해도 permission 문제가 발생하니, 설정을 바꿔줘야 할것같다.

npmjs 에서도 관련해서 문제가 발생할 경우 설정을 바꾸는 방법에 대해서 안내를 해주고 있다.

https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

 

Resolving EACCES permissions errors when installing packages globally | npm Documentation

If you see an EACCES error when you try to install a package globally, you can either: Reinstall npm with a node version manager (recommended), or Manually change npm’s default directory Reinstall npm with a node version manager This is the best way to avo

docs.npmjs.com

 

해결방법을 요약하자면, 자신의 계정 홈 경로에 npm global 설치 패키지 디렉토리를 만들고 글로벌 설치시에 해당 경로로 패키지가 설치 되도록 하는 방법인데

다음의 과정을 진행하면 된다.

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'

vi ~/.profile

profile 제일 하단에 다음 코드를 추가한다.

export PATH=~/.npm-global/bin:$PATH

:wq 저장 후 변경된 프로필 내용을 적용 해준다.

source ~/.profile

끝이다.

이제 홈 경로에 global package 가 설치 되므로 sudo 명령어가 필요가 없게 되었다.

npm install -g node-sass

하니 경고 하나 없이 잘 설치가 되었다.

끝.