使用Expo安装@react-native-community/slider时NPM报错如何解决?
解决方案
- 方案一:直接使用npm安装并指定参数,后续补做Expo依赖校验
直接运行命令:npm install @react-native-community/slider@4.1.7 --legacy-peer-deps
安装完成后执行expo doctor --fix-dependencies,让Expo自动校验并调整依赖版本到和当前SDK兼容的范围,该方法不会破坏Expo的依赖匹配规则。 - 方案二:临时给npm全局设置legacy-peer-deps标识,安装完成后再改回默认
先运行npm config set legacy-peer-deps true,之后再执行expo install @react-native-community/slider,等安装成功后再运行npm config set legacy-peer-deps false恢复默认配置,避免后续安装其他包时忽略对等依赖检查。 - 方案三:降级npm到7以下版本
npm7及以上版本才默认开启严格的对等依赖检查,如果你不想调整配置,可以降级npm到6.x版本:npm install -g npm@6,降级完成后再执行expo install命令即可正常安装。
本次报错的核心原因是npm 8.1.2默认开启了严格的对等依赖校验,@react-native-community/slider依赖的react-native-windows要求react版本为17.0.2,而当前项目用的react版本是17.0.1,版本不匹配触发了npm的安装阻断,而expo install命令本身不支持直接传递npm的运行参数,所以才会安装失败。上述三个方案都可以绕开这个限制,且不会影响Expo项目的正常运行。
内容的提问来源于stack exchange,提问作者user17067217
相关产品推荐
相关产品推荐

