Answers:
将用户的npm相关文件夹的所有权还原到当前用户,如下所示:
sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config
root
所有权创建的。这解决了所有问题。谢谢!
sudo chown -R $(whoami) ~/.npm
sudo chown -R $(whoami) ~/.config
如果您第一次运行NPM时使用sudo,例如在尝试执行npm install -g时,就会发生这种情况。
缓存文件夹必须由当前用户拥有,而不是root。
sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config
当以普通用户权限(不是sudo)运行时,这将赋予上述文件夹所有权。
还值得注意的是,您不应该使用SUDO安装全局软件包。如果确实遇到权限问题,则值得更改全局目录。该文档建议:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
然后在定义的任何地方更新PATH(〜/ .profile等)
export PATH=~/.npm-global/bin:$PATH
然后,您需要确保已设置PATH env变量(重新启动终端或使用source命令)
https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally
以上答案对我没有用。只需尝试使用运行命令即可--unsafe-perm
。
例如
npm install -g node@latest --unsafe-perm
这似乎解决了问题。
如果答案中的建议都没有解决,请尝试以下命令:npm cache clear --force
。它为我工作。
只需在位置_cache/tmp
下.npm
手动创建文件夹,/Users/marknorgate/.npm/_cacache/tmp
然后以管理员权限运行命令
这对我有用!
尝试使用此方法:在命令行的主目录中,为全局安装创建目录:
mkdir ~/.npm-global
配置npm以使用新的目录路径:
npm config set prefix '~/.npm-global'
在您喜欢的文本编辑器中,打开或创建〜/ .profile文件并添加以下行:
export PATH=~/.npm-global/bin:$PATH
在命令行上,更新系统变量:
source ~/.profile
现在使用npm install应该可以。
只需在终端上运行: sudo chown -R $(whoami) ~/.npm
这对我有用!
这对我有用:
sudo chown -R $(whoami) ~/.npm
我没有使用,-g
因为我是唯一的用户。我使用了MacBook Air。