[英]Why does npm need sudo for EVERYTHING?
我不知道我是如何管理它的,但 npm 似乎绝对每个命令都需要sudo
,即使没有 sudo, npm help
也无法工作。 如果我使用不带sudo
的命令,我看不到EACCESS
错误,而是我的终端会话挂起然后关闭该选项卡(我在 Mac 上使用 iTerm)。
我已经尝试更改我的本地.npm
文件夹的所有权,在此处概述,并且还在我的/usr/local/bin
文件夹上执行了相同的操作,其中安装了节点,但这些都不允许我在没有sudo
的情况下运行 npm,即使在安装本地时也是如此包裹......,在我看来,一路上有什么东西搞砸了? 谁能帮忙?
非常感谢
今天重新安装0.12.4后,我遇到了相同的错误; 这为我解决了问题:
sudo chown -R $(whoami):admin /usr/local/lib/node_modules
在我的特定情况下,我注意到该文件夹归'{some-large-integer-account}:wheel'... YMMV拥有
如果仍不能解决问题,请查看EACCESS错误跟踪中提到的被阻止文件夹的所有权。 如果你不知道的所有权应该是什么样,你通常可以从兄弟迪尔斯的所有权来推断。
我的机器上也有这个。 我所做的修复(可能有很多极端的方法)是完全删除npm,然后从http://nodejs.org/进行了全新的安装node.js(包括npm),确保没有不能以root用户身份安装。 然后,这使我可以在没有root的情况下使用npm(全局安装除外)。
以ember项目为例,我为所有相关项目目录指定根目录:
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) | 629msneil@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
使用以下选项。
打开终端并cd
到您的Home
目录并运行以下命令。
mkdir "${HOME}/.npm-packages"
然后是这个命令。
npm config set prefix "${HOME}/.npm-packages"
接下来,使用open -t.zshrc
.zshrc
打开 .zshrc 文件并向其中添加以下内容。
NPM_PACKAGES="${HOME}/.npm-packages"
export PATH="$PATH:$NPM_PACKAGES/bin"
# Preserve MANPATH if you already defined it somewhere in your config.
# Otherwise, fall back to `manpath` so we can inherit from `/etc/manpath`.
export MANPATH="${MANPATH-$(manpath)}:$NPM_PACKAGES/share/man"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.