无法执行npm install -g create-react-native-app,权限错误求助
解决Mac上全局安装React Native时的EACCES权限错误
嘿,这个权限问题我太熟悉了!Mac上全局安装npm包时碰到EACCES: permission denied简直是家常便饭,核心原因就是你的普通用户账号没有写入/usr/local/lib/node_modules目录的权限——系统默认把这个目录的权限锁得比较严。给你几个靠谱的解决办法,按需选择:
方案1:修改npm全局安装目录(最推荐,不碰系统权限)
这个方法是给npm单独设置一个属于你用户的全局目录,从根源避免权限问题:
- 第一步:在你的用户主目录下创建一个专门存放全局npm包的文件夹:
mkdir ~/.npm-global - 第二步:告诉npm以后使用这个新目录作为全局包的安装路径:
npm config set prefix '~/.npm-global' - 第三步:把新目录的
bin路径添加到你的shell配置文件里(如果用的是bash,编辑~/.bash_profile;如果是zsh,编辑~/.zshrc),在文件末尾加一行:export PATH=~/.npm-global/bin:$PATH - 第四步:刷新shell配置让修改生效:
# bash用户执行 source ~/.bash_profile # zsh用户执行 source ~/.zshrc - 第五步:现在重新执行安装命令就没问题了:
npm install -g create-react-native-app
方案2:临时用sudo提升权限(应急可用,不推荐长期用)
如果只是想快速搞定,直接在安装命令前加sudo临时获取root权限:
sudo npm install -g create-react-native-app
输入你的Mac用户密码后就能继续安装,但要注意:用sudo装的包所有者是root,后续更新或管理这些全局包时可能还会碰到权限问题,所以这个方法只适合应急。
方案3:修改系统目录权限(谨慎操作)
直接把/usr/local/lib/node_modules目录的所有者改成你的用户账号,这样普通用户就能直接写入:
sudo chown -R $(whoami) /usr/local/lib/node_modules
这个方法能解决当前问题,但要注意:如果这个目录里有其他系统依赖的文件,修改权限可能导致未知问题,所以除非你清楚自己在做什么,否则优先选方案1。
内容的提问来源于stack exchange,提问作者Curious Person
相关产品推荐
相关产品推荐

