[node.js] 오류 : EACCES : 권한이 거부되었습니다.

npm install lodash를 실행 했지만 오류 : EACCES : 권한 거부 오류가 발생합니다. 권한 문제라는 것을 알고 있지만 내가 아는 한 노드 모듈을 로컬로 설치하는 데 sudo 권한이 필요하지 않습니다. sudo로 실행하면 ~ / node_modules 폴더에 설치됩니다. drwxrwxr-x 는 기존 폴더의 파일 권한입니다. 나는 무엇이 잘못되었을 지 알 수 없다.

다음은 오류 메시지입니다.

npm ERR! tar.unpack untar error /home/rupesh/.npm/lodash/4.13.1/package.tgz
npm ERR! Linux 3.13.0-88-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "lodash"
npm ERR! node v4.3.1
npm ERR! npm  v2.14.12
npm ERR! path /home/rupesh/node_modules/lodash
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir

npm ERR! Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_class: 'DirWriter',
npm ERR!   fstream_stack:
npm ERR!    [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25',
npm ERR!      '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53',
npm ERR!      'FSReqWrap.oncomplete (fs.js:82:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/rupesh/Desktop/es6/npm-debug.log



답변

이 명령은 문제를 해결합니다. 그것은 나를 위해 일했습니다.

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


답변

전 세계적으로 webpack 서버 설치와 동일한 문제가 있습니다. 이 URL의 단계를 사용하십시오. 내 문제를 해결했습니다.

위에서 언급 한 단계 : 시작하기 전에 컴퓨터를 백업하십시오.

전역 설치를위한 디렉토리를 만듭니다.

1. mkdir ~/.npm-global

새 디렉터리 경로를 사용하도록 npm을 구성합니다.

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

~ / .profile 파일을 열거 나 만들고 다음 줄을 추가합니다.

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

명령 줄로 돌아가서 시스템 변수를 업데이트합니다.

4.source ~/.profile

테스트 : sudo를 사용하지 않고 전역 적으로 패키지를 다운로드합니다 .

npm install -g jshint

2-4 단계 대신 해당 ENV 변수를 사용할 수 있습니다 (예 : ~ / .profile을 수정하지 않으려는 경우).

NPM_CONFIG_PREFIX=~/.npm-global


답변

npm init를 사용하여 package.json 을 생성 하면 문제가 해결되었습니다.


답변

Linux에서 문제가 발생했습니다. 나는 썼다

chown -R myUserName ./* 

내 프로젝트 폴더에.


답변

내가 게시 한 로그에서 볼 수있는 것 :

npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_class: 'DirWriter',

디렉토리에 디렉토리 /home/rupesh/node_modules/를 생성하는 데 필요한 권한 chown -r rupesh:rupesh /home/rupesh/node_modules/이 없으므로 실행 하면 해결됩니다.


답변

others(rx)에 대한 쓰기 권한이 없습니다 . 시도

chmod a+w <folder>

반복합니다.


답변

이것은 내 문제를 즉시 해결했습니다-mac Mojave 10.14.6-PhpStorm.

처리되지 않은 거부 오류 : EACCES : 권한이 거부되었습니다. mkdir ‘/Users/myname/.npm/_cacache/index-v5/fb/5a’

sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config

원본 게시물 :
https://stackoverflow.com/a/50639828