使用npm全局安装nodemon时遭遇EACCES权限错误求助
解决全局安装nodemon的EACCES权限问题
方案1:修复npm全局目录权限归属
直接调整系统全局node_modules目录和npm缓存目录的所有者为当前用户,从根源解决权限问题:
- 查看全局node_modules目录的权限信息:
ls -ld /usr/local/lib/node_modules - 将目录所有者修改为当前用户(
$USER会自动获取当前用户名):sudo chown -R $USER:$GROUP /usr/local/lib/node_modules - 同步修改npm缓存目录的权限:
sudo chown -R $USER:$GROUP ~/.npm - 执行全局安装命令:
npm i -g nodemon
方案2:用nvm管理Node.js环境
通过nvm在用户目录下独立管理Node版本,全局包会安装在用户权限范围内的目录,彻底规避系统权限限制:
- 安装nvm(Linux/macOS执行以下命令,Windows可下载官方安装包):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash - 重启终端后,安装LTS版本的Node.js:
nvm install --lts - 设置该版本为默认Node环境:
nvm alias default node - 直接安装nodemon,无需sudo:
npm i -g nodemon
方案3:自定义npm全局包安装目录
临时指定全局包安装到用户目录下的自定义文件夹,无需修改系统目录权限:
- 在用户目录创建全局包存储文件夹:
mkdir ~/.npm-global - 配置npm使用该目录作为全局包前缀:
npm config set prefix '~/.npm-global' - 将自定义目录添加到系统PATH(bash用户编辑
~/.bashrc,zsh用户编辑~/.zshrc):echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc - 刷新终端配置:
source ~/.bashrc - 执行安装命令:
npm i -g nodemon
方案4:清理残留目录后重新安装
如果是之前安装残留的nodemon目录导致权限冲突,先手动清理再安装:
- 强制删除系统中残留的nodemon目录:
sudo rm -rf /usr/local/lib/node_modules/nodemon - 清理npm缓存:
npm cache clean --force - 重新执行全局安装:
npm i -g nodemon
内容的提问来源于stack exchange,提问作者Rishabh Singh
相关产品推荐
相关产品推荐

