Сообщение об ошибке довольно ясно:
npm ERR! Error: EACCES, permission denied '/usr/local/lib/node_modules/___coffee-script.npm'
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
Вы не можете установить его в /usr/local/lib/node_modules
, потому что у вас нет необходимых разрешений. Попробуйте использовать sudo
:
dylan-hermans-macbook:~ sudo npm install -g coffee-script
Автор npm рекомендует не использовать sudo
, поскольку пакеты могут запускать произвольные команды, поэтому sudo npm install
опасно. Он предлагает сменить владельца /usr/local
на своего пользователя. Я думаю, что это ужасный совет, который просто дает вам ложное чувство безопасности: если пакет может выполнять произвольные команды, он может связываться с вашим домашним каталогом (включая все ваши личные данные, исполняемые файлы, файлы конфигурации и запуска, ...) независимо от того, sudo
или кому принадлежит /usr/local
, поэтому использование sudo
на самом деле мало что для вас значит. Если вы не доверяете пакету, не устанавливайте его; если вы не доверяете пакету, то как вы можете его использовать? Дерево /usr/local
по-прежнему является деревом системных каталогов, а OSX по-прежнему является многопользовательской операционной системой.
ИМО, гораздо лучшее решение имеет два аспекта:
- Не устанавливайте и не используйте пакеты, которым вы не доверяете. Если вы устанавливаете его, то вы доверяете этому коду (если вы не собираетесь всегда запускать его в какой-то тюрьме, но если вы пойдете на такую длину, вам, вероятно, лучше написать код самостоятельно) .
- Оставьте
sudo
и /usr/local
в покое и установите все это в вашем домашнем каталоге. Вы будете подвержены большинству тех же опасностей, что и при использовании sudo
или смене владельца /usr/local
, но, по крайней мере, вы не будете приобретать вредные привычки.