npm 설치 오류: Error: EACCES: permission denied

3083 단어

오류는 다음과 같습니다.

sudo npm i webpack -g
/Users/xesfe/.npm-global/bin/webpack -> /Users/xesfe/.npm-global/lib/node_modules/webpack/bin/webpack.js
# System-wide .profile for sh(1)

> [email protected] install /Users/xesfe/.npm-global/lib/node_modules/webpack/node_modules/fsevents
> node-gyp rebuild

gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/Users/xesfe/.npm-global/lib/node_modules/webpack/node_modules/fsevents/build'
gyp ERR! System Darwin 19.2.0
gyp ERR! command "/Users/xesfe/.nvm/versions/node/v10.16.2/bin/node" "/Users/xesfe/.nvm/versions/node/v10.16.2/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/xesfe/.npm-global/lib/node_modules/webpack/node_modules/fsevents
gyp ERR! node -v v10.16.2
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/webpack/node_modules/fsevents):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

+ [email protected]
updated 1 package in 22.243s

시나리오 1:

 npm install --unsafe-perm=true --allow-root -g nodeppt

설치할 때 nodeppt를 계속 잘못 보고하고 자료를 찾아서 --unsafe-perm=true--allow-root를 추가하면 문제를 해결할 수 있습니다.git에서 issue:https://github.com/npm/npm/issues/17268이 방안은 그다지 우아하지 않은 것 같아서 두 번째 방안을 찾았다.

시나리오 2


1. 글로벌 폴더 구성
mkdir ~/npm-global
 
npm config set prefix '~/npm-global'

ps:mac에서 점을 만들지 마세요(.)시작하는 프로필입니다. 그렇지 않으면 해결할 수 없습니다.
2. 환경 변수 수정
vi /etc/profile 

만약 파일이 읽기 전용이라면, 파일의 읽기와 쓰기 권한을 바꾸시오
sudo chmod 777 /etc/profile

/etc/profile에 추가
# npm 
export PATH=~/npm-global/bin:$PATH

3. 환경 변수 구성 활성화
source /etc/profile

4, 다시 포장
i webpack -g
/Users/xesfe/npm-config/bin/webpack -> /Users/xesfe/npm-config/lib/node_modules/webpack/bin/webpack.js

> [email protected] install /Users/xesfe/npm-config/lib/node_modules/webpack/node_modules/fsevents
> node-gyp rebuild

  SOLINK_MODULE(target) Release/.node
  CXX(target) Release/obj.target/fse/fsevents.o
  SOLINK_MODULE(target) Release/fse.node
+ [email protected]

5. 웹팩을 실행하면
zsh: command not found: webpack

그러면 환경 변수에 추가하면 됩니다.
다음을 수행합니다.
vi .bash_profile  

있다bash_프로필 추가
export NPM_CONFIG=~/npm-config
export PATH=$PATH:$NPM_CONFIG/bin

다음 명령을 실행하여 환경 변수를 적용합니다.
source .bash_profile

 
OK, 권한이 부족한 문제를 완벽하게 해결한다.
참조:
https://www.jianshu.com/p/7192b336c6cd
  

좋은 웹페이지 즐겨찾기