我已经把我的npm
安装搞坏了,每当我尝试使用npm install
安装包时,都会收到类似以下的错误信息:
Unhandled rejection Error: EACCES: permission denied, open '/Users/marknorgate/.npm/_cacache/tmp/a449402d'
我尝试重新安装node和npm,也尝试按照这些说明将我的npm缓存重定位到其他位置,但都没有起作用。
我该如何解决这个问题?
我已经把我的npm
安装搞坏了,每当我尝试使用npm install
安装包时,都会收到类似以下的错误信息:
Unhandled rejection Error: EACCES: permission denied, open '/Users/marknorgate/.npm/_cacache/tmp/a449402d'
我尝试重新安装node和npm,也尝试按照这些说明将我的npm缓存重定位到其他位置,但都没有起作用。
我该如何解决这个问题?
恢复用户的npm相关文件夹的所有权,将其设置为当前用户,方法如下:
sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config
sudo chown -R $(whoami) ~/.npm
sudo chown -R $(whoami) ~/.config
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环境变量(重新启动终端或使用source命令)
https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally
sudo npm cache clean --force --unsafe-perm
然后npm i正常运行
--unsafe-perm
命令运行您的命令。npm install -g node@latest --unsafe-perm
这似乎解决了问题。
npm cache clear --force
。 这对我很有效。sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config
我使用sudo安装软件包时遇到了问题。
sudo npm install --unsafe-perm=true --allow-root
只需执行 sudo npm cache clean --force --unsafe-perm
,然后 npm i
就可以正常进行了。
只需在位置 /Users/marknorgate/.npm/_cacache/tmp
下手动创建文件夹_cache/tmp
,并以管理员权限运行您的命令即可。