You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何全局安装Nodemon时出现EACCES权限错误?如何解决?

全局安装Nodemon遭遇EACCES权限错误的原因及解决办法

我来帮你拆解这个问题:

为什么本地安装成功,全局安装却报错?

你执行npm i nodemon(本地安装)时,包会被安装在当前项目的node_modules目录下,这个目录属于当前登录用户(也就是你),所以拥有完整的读写权限,安装自然顺利。

而全局安装npm install -g nodemon时,npm会尝试把包写入系统级目录/usr/local/lib/node_modules——这个目录默认归root用户所有,普通用户没有修改/写入的权限,所以就触发了EACCES权限拒绝错误。

可行的解决方法

下面给你几个安全且实用的方案,按推荐程度排序:

1. 修改npm全局目录的所有权(快速解决)

把/usr/local/lib/node_modules目录的所有权转移给当前用户,这样后续全局安装包都不需要特殊权限:

sudo chown -R $(whoami) /usr/local/lib/node_modules

执行完这条命令后,再重新运行全局安装命令:

npm install -g nodemon

2. 使用nvm管理Node.js(长期最优方案)

nvm(Node版本管理器)会把Node.js和所有全局npm包都放在当前用户的个人目录下,彻底避开系统权限冲突:

  • 先安装nvm(通过官方提供的安装脚本完成,安装后重启终端让配置生效)
  • 安装最新版Node.js:
nvm install node
  • 之后再执行全局安装nodemon的命令,就不会再遇到权限问题了:
npm install -g nodemon

3. 临时使用sudo(不推荐)

你可以用sudo npm install - -g nodemon临时绕过权限限制,但这种方式安装的包会归root用户所有,后续更新或管理这些包时可能依然会遇到权限问题,而且长期使用sudo安装包存在安全风险,所以仅建议作为临时应急方案。

4. 检查目录权限(排查问题用)

如果上面的方法没生效,可以先查看目标目录的权限详情:

ls -ld /usr/local/lib/node_modules

输出会显示目录的所有者和权限配置,确保所有者是你的当前用户名(比如navarajgiri)。

内容的提问来源于stack exchange,提问作者Raj Giri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 13:02:47