执行npm install -g firebase-tools报错EACCES权限被拒求助
错误信息(中文翻译)
npm ERR! code EACCES
npm ERR! syscall mkdir
npm ERR! path /usr/local/lib/node_modules/firebase-tools
npm ERR! errno -13
npm ERR! 错误:EACCES:权限被拒绝,无法创建目录 '/usr/local/lib/node_modules/firebase-tools'
npm ERR! [错误:EACCES:权限被拒绝,无法创建目录 '/usr/local/lib/node_modules/firebase-tools'] {
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/usr/local/lib/node_modules/firebase-tools'
npm ERR! }
npm ERR!
npm ERR! 操作被操作系统拒绝。
npm ERR! 很可能是当前用户没有访问该文件的权限
npm ERR!
npm ERR! 如果你认为这是权限问题,请仔细检查文件及其所在目录的权限,或者尝试以root/管理员身份重新运行命令。
npm ERR! 本次运行的完整日志可在以下位置找到:
npm ERR! /Users/mateusoliveira/.npm/_logs/2023-02-15T15_06_28_910Z-debug-0.log
临时快速方案:使用管理员权限执行安装命令,输入系统密码后即可完成安装:
sudo npm install -g firebase-tools注意:长期使用sudo安装全局npm包可能导致后续文件权限混乱,仅建议作为临时应急方案。
修复全局目录权限:将
/usr/local/lib/node_modules目录的所有权改为当前用户,后续安装全局包无需再申请权限:sudo chown -R $USER:$GROUP /usr/local/lib/node_modules执行完上述命令后,重新运行安装命令即可:
npm install -g firebase-tools推荐方案:使用nvm管理Node.js环境
nvm会在用户个人目录下管理Node.js版本和全局npm包,从根源避免系统级权限问题:- 安装nvm,在终端执行以下命令:
若curl不可用,可替换为wget命令:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bashwget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash - 重启终端,安装LTS版本的Node.js(长期支持版,稳定性更高):
nvm install --lts - 最后直接执行firebase-tools的安装命令即可,无需权限:
npm install -g firebase-tools
- 安装nvm,在终端执行以下命令:
内容的提问来源于stack exchange,提问作者Mateus Neves

