错误消息非常清楚:
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 npminstall很危险。他建议将的所有权切换
/usr/local到您的用户。我认为这是一种可怕的建议,只会给您一种错误的安全感:如果一个程序包可以运行任意命令,那么它就可能与您的主目录(包括您的所有个人数据,可执行文件,配置文件和启动文件,…)混为一谈。
sudo或谁拥有,
/usr/local因此不使用
sudo对您没有多大帮助。如果您不信任某个软件包,请不要安装它。如果您不信任某个程序包,那么您甚至将如何使用它?该
/usr/local树仍然是系统目录树,而OSX仍然是多用户操作系统。
IMO一个更好的解决方案是双重的:
- 不要安装或使用任何您不信任的软件包。如果您安装了它,那么您就可以相信该代码是您自己(除非您总是要在某种监狱中运行它,但是如果要达到这些长度,则最好自己编写代码) 。
- 离开
sudo
并/usr/local
独自将其全部安装在您的主目录中。与使用sudo
或更改/usr/local
所有权一样,您将面临大多数相同的危险,但是至少您不会养成不良习惯。



