全局安装nodemon包失败,npm报EACCES权限错误该如何解决?
npm全局安装nodemon权限报错解决方案
错误原因
该报错是当前用户没有系统npm全局包目录/usr/local/lib/node_modules的写入权限导致的EACCES权限异常。
解决方案
方案一:修改npm全局安装路径(最推荐,无安全风险、无后续兼容问题)
- 第一步:在当前用户目录下创建npm全局包存储文件夹
mkdir ~/.npm-global - 第二步:配置npm使用新的文件夹作为全局安装路径
npm config set prefix '~/.npm-global' - 第三步:将新路径添加到系统环境变量
根据你使用的终端类型,编辑对应的配置文件:- 使用zsh(Mac默认终端):打开
~/.zshrc文件,在末尾新增一行export PATH=~/.npm-global/bin:$PATH - 使用bash:打开
~/.bash_profile文件,在末尾新增一行export PATH=~/.npm-global/bin:$PATH
- 使用zsh(Mac默认终端):打开
- 第四步:刷新环境变量使配置生效
对应上面的终端类型,执行:source ~/.zshrc或source ~/.bash_profile - 第五步:重新执行nodemon全局安装命令即可
npm install -g nodemon
方案二:修改系统全局node_modules目录的所属权限
如果不想修改npm的全局安装路径,可以直接把对应目录的所有者改为当前用户:
- 执行权限修改命令,输入用户密码确认即可:
sudo chown -R $USER /usr/local/lib/node_modules - 完成后重新执行
npm install -g nodemon即可
方案三:临时获取管理员权限安装(仅应急使用,不推荐)
该方法只是单次解决问题,后续安装其他全局包依然会遇到权限问题,且给npm提权存在安全风险:
- 直接执行带sudo的安装命令,输入用户密码确认即可完成安装:
sudo npm install -g nodemon
内容的提问来源于stack exchange,提问作者ATUL YADAV
相关产品推荐
相关产品推荐

