为什么 npm 的所有操作都需要 sudo ?

Zan*_*der 5 macos shell node.js npm

我不知道我是如何管理它的,但 npm 似乎sudo绝对需要每个命令,甚至npm help没有 sudo 就无法工作。如果我使用不带 的命令sudo,我不会看到EACCESS错误,而是我的终端会话挂起,然后关闭该选项卡(我在 Mac 上使用 iTerm)。

我尝试过更改本地.npm文件夹的所有权,如此处所述并且还在安装了节点的文件夹上执行了相同的操作/usr/local/bin,但这些都不允许我只运行 npm sudo,即使在安装本地软件包时也是如此......!在我看来,一路上有些事情搞砸了,有人可以帮忙吗?

非常感谢

小智 6

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

sudo chown -R $(whoami):admin /usr/local/lib/node_modules
Run Code Online (Sandbox Code Playgroud)

在我的特定情况下,我注意到该文件夹​​由“{some-large-integer-account}:wheel”拥有...YMMV

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


Tom*_*ant 0

我的机器上也有这个。我修复它的方法(可能还有不太极端的方法)是完全删除 npm,然后从http://nodejs.org/进行全新安装 node.js (其中包含 npm) ,确保我没有这样做不要以 root 身份安装。这样我就可以在没有 root 的情况下使用 npm(全局安装除外)。