Mac系统安装react-native-cli时报EACCES权限拒绝错误如何解决?
Mac系统全局安装react-native-cli权限报错解决方案
报错原因
本次出现的EACCES错误为npm全局安装场景下的常见权限问题:npm默认的全局包安装路径/usr/local/lib/node_modules/属于系统级权限目录,仅root用户拥有写入权限,普通用户执行全局安装操作时会被系统驳回。
完整报错日志
npm install -g react-native-cli npm ERR! code EACCES npm ERR! syscall mkdir npm ERR! path /usr/local/lib/node_modules/react-native-cli npm ERR! errno -13 npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/react-native-cli' npm ERR! [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/react-native-cli'] { npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'mkdir', npm ERR! path: '/usr/local/lib/node_modules/react-native-cli' npm ERR! } npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and its containing directories, or try running npm ERR! the command again as root/Administrator. npm ERR! A complete log of this run can be found in: npm ERR! /Users/intersoft-admin/.npm/_logs/2021-11-10T09_56_34_035Z-debug.log
修复方案
优先选择方案一,无安全风险且可永久解决同类全局安装权限问题:
- 方案一:修改npm全局包默认安装路径至当前用户目录
- 在当前用户目录下创建专门存放全局npm包的文件夹:
mkdir ~/.npm-global- 配置npm使用新路径作为全局安装目录:
npm config set prefix '~/.npm-global'- 编辑当前用户的shell配置文件(zsh对应修改
~/.zshrc,bash对应修改~/.bash_profile或~/.bashrc),添加以下环境变量:
export PATH=~/.npm-global/bin:$PATH- 刷新shell配置使改动生效:
source ~/.zshrc # 请替换为你实际使用的shell配置文件路径- 重新执行安装命令即可正常安装:
npm install -g react-native-cli - 方案二:临时提权安装(仅应急使用,不推荐)
直接在安装命令前增加sudo,输入当前用户登录密码即可使用root权限写入系统目录,后续安装其他全局包仍可能触发同类权限问题:sudo npm install -g react-native-cli
内容的提问来源于stack exchange,提问作者Pankaj Bansal
相关产品推荐
相关产品推荐

