2016-10-11 116 views
0

我無法將Browsersync https://www.browsersync.io/#install安裝到我的Mac OS Sierra。我安裝了node.js並運行命令後當通過NPM安裝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並添加~./some/folder/bin$PATH全球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

我在Mac上的MacOS塞拉利昂類似的問題進一步討論。

我建議使用更安全的方法,我遵循和它的工作,而不是CHOWN整個/ usr /本地文件夾。

如果已通過自制軟件安裝節點,那麼你將有它已經蠻好的,你只需要CHOWN的node_modules文件夾即

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

所以我們固定的權限,我們正與問題的唯一目錄。