React Native执行命令遇EPERM权限错误,求解决方案
解决React Native CLI EPERM权限错误及rnpm弃用警告问题
针对你遇到的React Native CLI权限报错和rnpm警告问题,我整理了几个针对性的解决步骤,你可以逐一尝试:
一、修复EPERM权限错误(核心问题)
这个错误是因为xsel文件的权限设置异常导致的——xsel是Linux系统的剪贴板工具,在macOS环境下其实用不上,我们可以通过两种方式解决:
方法1:修改xsel文件权限
打开终端,执行命令调整文件权限:
sudo chmod 755 /usr/local/lib/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/external/xsel
权限修改完成后,直接运行react-native --version(不需要加sudo),看是否还报错。
方法2:直接删除无用的xsel文件
如果修改权限无效,直接删除这个macOS不需要的文件即可:
sudo rm /usr/local/lib/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/external/xsel
删除后再尝试运行React Native命令,应该就能正常执行了。
二、避免全局CLI权限问题(长期方案)
全局安装npm包时经常会遇到权限问题,推荐用nvm管理Node.js版本,从根源避免这类问题:
- 先卸载全局的react-native-cli:
npm uninstall -g react-native-cli - 安装nvm(如果还没装的话),然后通过nvm安装适配React Native 0.59.6的Node.js版本(推荐v12.x系列,这个版本和RN 0.59.x兼容性最好)。
- 切换到nvm管理的Node版本后,重新全局安装react-native-cli:
npm install -g react-native-cli - 回到项目目录,重新安装依赖:
npm install
之后再运行React Native命令就不需要依赖sudo权限了。
三、处理rnpm弃用警告
用sudo运行时出现的警告是因为RN CLI不再支持rnpm配置格式,需要迁移到react-native.config.js:
- 在项目根目录创建
react-native.config.js文件。 - 把原来
package.json里的rnpm字段内容迁移到这个文件中,举个例子:
如果你的package.json里有:
就改成"rnpm": { "assets": ["./src/assets/fonts"], "plugins": ["react-native-video"] }react-native.config.js里的内容:module.exports = { assets: ["./src/assets/fonts"], dependencies: { "react-native-video": { // 这里可以添加原rnpm插件的配置,比如ios/android的设置 } } }; - 至于第三方库(react-native-google-signin、react-native-video)的rnpm警告,这是库本身的问题,你可以暂时忽略,或者等待库作者更新配置,不影响当前功能使用。
注意事项
- 尽量不要用
sudo运行React Native命令,否则会导致项目文件的所有权变成root,后续会引发更多权限问题。 - 确保全局安装的react-native-cli版本和项目依赖的
@react-native-community/cli版本尽量兼容,避免版本不一致导致的奇怪问题。
内容的提问来源于stack exchange,提问作者Dhevendhiran M
相关产品推荐
相关产品推荐

