2016-10-11 2 views
0

Mac OS Sierra에 Browsersync https://www.browsersync.io/#install을 설치할 수 없습니다. node.js를 설치하고 명령을 실행 한 후NPS를 통해 Browsersync를 설치할 때 사용 권한이 거부되었습니다.

npm install -g browser-sync 

오류가 발생했습니다. 내가 뭘 잘못하고있어?

pavels-iMac:~ Pavel$ npm install -g browser-sync 

npm ERR! tar.unpack untar error /Users/Pavel/.npm/browser-sync/2.17.2/package.tgz 
npm ERR! Darwin 16.0.0 
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "browser-sync" 
npm ERR! node v4.6.0 
npm ERR! npm v2.15.9 
npm ERR! path /usr/local/lib/node_modules/browser-sync 
npm ERR! code EACCES 
npm ERR! errno -13 
npm ERR! syscall mkdir 

npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/browser-sync' 
npm ERR!  at Error (native) 
npm ERR! { [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/browser-sync'] 
npm ERR! errno: -13, 
npm ERR! code: 'EACCES', 
npm ERR! syscall: 'mkdir', 
npm ERR! path: '/usr/local/lib/node_modules/browser-sync', 
npm ERR! fstream_type: 'Directory', 
npm ERR! fstream_path: '/usr/local/lib/node_modules/browser-sync', 
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!  /Users/Pavel/npm-debug.log 
+1

ostrov 내 대답을 받아 들일 수 없어 야합니다. @ msanford의 – brandonscript

+0

무엇을 환영합니까? @BRandonscript :) – msanford

+1

내가 틀렸을 때 나는 인정할 수 있습니다. 왜냐하면 나는 어떤 사람들에게 나에게 '옳은'방법을 가르쳐 준다고 믿었 기 때문에 내 방식의 오류를 배울 수 없다는 것을 의미하지는 않는다. – brandonscript

답변

1

일반적으로 사용자 계정에/usr/local /의 소유권을 부여하는 것이 좋습니다. 이 위치는 npm 전역 모듈과 많은 mac homebrew 패키지에서 사용됩니다.

sudo chown -R $(whoami) /usr/local 

이렇게하면 문제가 해결되고 sudo를 불필요하게 사용하지 않아도됩니다.

+0

나는 그것을 바로 지금했다 :)) 그것을 고치는 방법? – Ostrov

+1

보안상의 문제는 아닙니다. 이 디렉토리는 Apple에서 사용하지 않습니다. https://github.com/Homebrew/brew/blob/master/docs/FAQ.md를 참조하십시오. – sethasaurus

+0

공식적으로 제안 된 해결책에 가깝습니다. https : //docs.npmjs.com/getting-started/fixing-npm-permissions – msanford

2

two officially-suggested methods for fixing this 있습니다

  1. 직접 NPM은 npm config set prefix ~./some/folder을 발행하고 $PATH~./some/folder/bin을 추가하여 세계적으로 somewhere your user owns 모듈을 설치합니다.

  2. 사용자의/usr/local 하위 세트의 소유권을 변경하십시오.

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

그러나, 첫 번째 솔루션은 대부분의 소리를 보인다. 어쨌든 필자는 반드시 시스템 권한으로 주변을 조종해야한다고 생각하지 않습니다. How/why does npm recommend not running as root?

1

내가 맥 맥 OS 시에라에서 유사한 문제가 발생되었다에

또한 토론.

CHOWN 전체/usr/local 폴더 대신에 나는 더 안전한 접근 방식을 사용하는 것이 좋습니다. 당신이 브루 통해 노드를 설치 한 경우

당신은 이미 잘 그것을해야합니다, 당신은 단지 CHOWN에 필요한 node_modules 폴더

sudo chown -R $(whoami) /usr/local/lib/node_modules 

그래서 우리는 우리가 문제가있는 유일한 디렉토리에 대한 사용 권한을 수정 즉, .

관련 문제