为什么npm需要一切sudo?

我不知道我是如何pipe理的,但npm似乎需要sudo才能完成每个命令,即使npm help也不能在没有sudo的情况下运行。 如果我没有sudo使用命令,我没有看到EACCESS错误,而是terminal会话挂起,然后closures该选项卡(我在Mac上使用iTerm)。

我试图改变我的本地.npm文件夹的所有权, 这里概述,也做了我的/usr/local/bin文件夹,其中节点安装,但没有这些允许我只是没有sudo运行npm,甚至当安装本地包…! 在我看来,有什么事情一路顺风,谁能帮忙?

非常感谢

我今天刚安装了0.12.4后遇到同样的错误; 这解决了我的问题:

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

在我的具体情况,我注意到这个文件夹是由“{一个大整数帐户:轮”拥有… … YMMV

如果这样做不能解决问题,请查看EACCESS错误跟踪中提到的被阻止的文件夹的所有权。 如果你不确定所有权应该是什么,你通常可以从兄弟姐妹的所有权中推断出来。

我的机器上也有这个。 我做了什么来解决这个问题(可能有更less的极端方法)是完全删除npm,然后从http://nodejs.org/做了一个全新的安装node.js(包括npm),确保我没有以root身份安装。 这就允许我使用没有根目录的npm(全局安装除外)。

以ember项目为例,我给所有相关的项目目录root:

neil@neil-System-Product-Name:~/Projects/ember-quickstart$ sudo chown -R $(whoami) /home/neil/Projects/ember-quickstart/ neil@neil-System-Product-Name:~/Projects/ember-quickstart$ ember s Could not start watchman Visit https://ember-cli.com/user-guide/#watchman for more info. Livereload server on http://localhost:7020 Build successful (10679ms) – Serving on http://localhost:4200/ Slowest Nodes (totalTime => 5% ) | Total (avg)
----------------------------------------------+--------------------- Babel (18) | 7561ms (420 ms)
Concat (8) | 1872ms (234 ms)
Rollup (1) | 629ms
neil@neil-System-Product-Name:~/Projects/ember-quickstart$ ember s Could not start watchman Visit https://ember-cli.com/user-guide/#watchman for more info. Livereload server on http://localhost:7020 Build successful (10679ms) – Serving on http://localhost:4200/ Slowest Nodes (totalTime => 5% ) | Total (avg)
----------------------------------------------+--------------------- Babel (18) | 7561ms (420 ms)
Concat (8) | 1872ms (234 ms)
Rollup (1) | 629ms