Mac系统安装nodemon失败报EACCES权限错误如何解决?
问题原因
该报错是典型的npm全局包安装权限问题:Mac系统默认将npm全局包存储路径/usr/local/lib/node_modules的所有者设置为root用户,你当前使用的普通账号没有该目录的写入权限,因此全局安装nodemon时触发权限拒绝错误。
解决方案
以下三种方案按推荐优先级排序:
方案1:修改npm全局包存储路径(最安全,无后续权限隐患)
- 在当前用户目录下创建专属的npm全局包存储目录:
mkdir ~/.npm-global
- 配置npm使用新的存储路径作为全局安装前缀:
npm config set prefix '~/.npm-global'
- 编辑shell配置文件添加环境变量:
如果你使用zsh(Mac Catalina及之后版本默认shell),编辑~/.zshrc文件,添加如下行:
如果你使用bash,编辑export PATH=~/.npm-global/bin:$PATH~/.bash_profile或~/.bashrc添加上述内容即可。 - 重载配置文件让改动立即生效:
# zsh用户执行 source ~/.zshrc # bash用户对应执行source ~/.bash_profile 或 source ~/.bashrc
- 重新执行nodemon全局安装命令即可成功:
npm install -g nodemon
方案2:修改系统npm全局目录的所有者
如果你不想修改npm默认路径,可以直接把全局目录的所有者改为当前用户:
sudo chown -R $(whoami) /usr/local/lib/node_modules
执行命令后输入当前账号的开机密码,后续安装所有全局npm包都不需要额外提权。
方案3:临时提权安装(仅适合单次临时使用,不推荐长期用)
直接用sudo执行安装命令临时获取root权限:
sudo npm install -g nodemon
输入开机密码即可完成安装,但频繁用sudo安装npm包容易导致系统目录权限混乱,不建议常用。
内容的提问来源于stack exchange,提问作者RAJ BANSAL
相关产品推荐
相关产品推荐

