2016-10-11 2 views
0

Я не могу установить Browsersync https://www.browsersync.io/#install на свою Mac OS Sierra. Я установил node.js и после выполнения командыРазрешение отклонено при установке Browsersync через NPM

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's – 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. Direct НПМ устанавливать модули глобально somewhere your user owns путем выдачи npm config set prefix ~./some/folder и добавления ~./some/folder/bin к вашему $PATH.

  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 Sierra.

Предлагаю использовать более безопасный подход, за которым я следовал, и он работал, а не вместо CHOWN в целом/usr/local folder.

Если вы установили узел с помощью Homebrew, то вы будете иметь это уже очень хорошо, вам просто нужно CHOWN node_modules папки т.е.

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

Так мы фиксируем разрешение для единственного каталога мы имеем проблему с ,

Смежные вопросы