Mac下无需sudo运行react-native run-android报错的解决办法
解决Mac上无需sudo运行React Native项目的权限问题
我之前也碰到过一模一样的权限报错,折腾了好一会儿才搞定,给你几个靠谱的解决方案,按顺序尝试就行:
方案1:修复项目node_modules目录的所有权
这个报错最常见的原因是node_modules目录(或者其中的子文件)属于root用户,导致当前普通用户没有读写权限(大概率是之前用sudo装过依赖导致的)。直接修改目录所有权就能解决:
sudo chown -R $(whoami):$(whoami) /Me/newone/cc-react-native/node_modules
这条命令会把整个node_modules目录及其所有子文件/文件夹的所有者和所属组都改成当前登录用户,之后你再运行React Native命令就不需要sudo了。
方案2:避免全局npm权限问题(预防后续再踩坑)
如果以后你装全局包或者运行其他npm命令也碰到权限问题,可以先修复npm全局目录的所有权:
- 先查看npm的全局安装路径:
npm config get prefix
- 然后修改该路径的所有权:
sudo chown -R $(whoami):$(whoami) <上面命令输出的路径>
比如默认路径可能是/usr/local或者~/.npm,这样后续全局安装依赖也不用加sudo,从根源避免权限问题。
方案3:重新初始化项目(如果前两个方案无效)
如果上面的方法都没解决,可以彻底重置项目依赖:
- 删除现有依赖目录和锁文件:
rm -rf node_modules package-lock.json
- 重新安装依赖(绝对不要加sudo):
npm install
安装完成后再尝试运行React Native项目,应该就能正常启动了。
重要提醒
以后不管是安装依赖还是运行react-native run-ios/android这类命令,都不要使用sudo,否则会再次让生成的文件归root所有,导致权限问题复发。
内容的提问来源于stack exchange,提问作者Amjad Mehmood
相关产品推荐
相关产品推荐

