使用npm安装n包更新Node.js版本时报EACCES权限错误如何解决
npm全局安装n时报EACCES权限错误解决方案
该错误属于npm全局安装包的常见权限问题,核心原因是当前用户没有/usr/local/lib/node_modules目录的写入权限,以下是三种可行解决方案,优先推荐方案1:
方案1:修改npm全局安装路径(无权限隐患,最推荐)
- 在当前用户目录下创建npm全局包专属存储目录:
mkdir -p ~/.npm-global - 配置npm使用新的全局安装路径:
npm config set prefix '~/.npm-global' - 打开当前使用的shell配置文件(常用的有
~/.bashrc、~/.zshrc),在文件末尾添加如下环境变量配置:export PATH=~/.npm-global/bin:$PATH - 刷新shell配置使其立即生效:
source ~/.bashrc
若使用zsh终端,将上述命令替换为
source ~/.zshrc即可
- 重新执行安装命令:
npm install -g n
方案2:修改系统默认npm全局目录的所属权限
如果需要保留系统默认的全局安装路径,可以将对应目录的所属权修改为当前用户:
sudo chown -R $USER:$USER /usr/local/lib/node_modules sudo chown -R $USER:$USER /usr/local/bin sudo chown -R $USER:$USER /usr/local/share
执行完成后重新运行npm install -g n即可。
方案3:临时使用管理员权限执行(仅应急使用,不推荐)
直接在安装命令前添加sudo获取临时管理员权限:sudo npm install -g n
注意:该方案可能导致后续所有全局安装的npm包都需要sudo权限才能运行,存在安全和使用隐患,仅建议临时应急时使用
内容的提问来源于stack exchange,提问作者Danike
相关产品推荐
相关产品推荐

