我已经设法破坏了我的npm install,每当我尝试使用npm install安装包时,我都会收到以下错误消息:

错误:EACCES:权限被拒绝,打开“/Users/marknorgate/.npm/ _cache /tmp/a449402d”

我试着重新安装node和npm,我也试着用这些指令重新定位我的npm缓存,但没有任何效果。

我怎样才能让它工作呢?


只需手动在location /Users/marknorgate/. npm下创建_cache/tmp文件夹。Npm / _cache /tmp,并以管理员权限运行该命令


恢复用户npm相关文件夹的所有权给当前用户,如下所示:

sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config

上面的回答对我不起作用。试着用——not - safe-perm运行你的命令。

e.g

npm install -g node@latest --unsafe-perm

这似乎解决了问题。


sudo chown -R $(whoami) ~/.npm
sudo chown -R $(whoami) ~/.config

如果答案中的建议都不可行,请尝试以下命令:npm cache clear——force。这对我很管用。

我在https://github.com/vuejs/vue-cli/issues/1809找到的。


如果你第一次运行NPM是使用sudo,就会发生这种情况,例如当你尝试执行NPM install -g时。

缓存文件夹需要由当前用户拥有,而不是root用户。

sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config

当使用普通用户权限(而不是sudo)运行时,这将赋予上述文件夹的所有权。

另外值得注意的是,不应该使用SUDO安装全局包。如果您确实遇到了权限问题,那么有必要更改全局目录。医生建议:

mkdir ~ / .npm-global

NPM配置前缀` ~/.npm-global `

然后在你定义的任何地方更新你的PATH(~/。配置文件等等)。

导出路径= ~ / .npm-global / bin: $路径

然后,您需要确保设置了PATH环境变量(重新启动终端或使用source命令)

https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally


sudo npm cache clean --force --unsafe-perm

然后NPM I正常运行


sudo npm install --unsafe-perm=true --allow-root

这是对我有用的方法


这对我很管用!

解决全局安装包时EACCES权限错误


您可以尝试使用以下命令登录世博会:

sudo chown -R $USER:$GROUP ~/.expo

简单地执行sudo npm cache clean -force -unsafe-perm和npm i将正常运行。


改变所有权

sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config 

工作,因为我安装包使用sudo


根据NPM社区

sudo npm cache clean --force --unsafe-perm

然后NPM安装就可以正常进行了。

来源:NPM community unhandling -reject -error- access -permission-denied


试试这个: 在命令行中,在你的主目录中,创建一个用于全局安装的目录:

mkdir ~/.npm-global

配置npm使用新的目录路径:

npm config set prefix '~/.npm-global'

在您首选的文本编辑器中,打开或创建~/。配置文件,并添加这一行:

export PATH=~/.npm-global/bin:$PATH

在命令行,更新你的系统变量:

source ~/.profile

现在使用npm安装它应该工作。


只需在终端上运行:sudo chown -R $(whoami) ~/.npm

这对我很管用!!


这个对我很有用:

sudo chown -R $(whoami) ~/.npm

我没有使用-g,因为我是唯一的用户。我用的是MacBook Air。


Sudo NPM install -g @angular/cli

用这个。这对我很有效