React Native项目集成Expo时卡在expo-modules-core,NDK并行安装耗时过长且存在高风险漏洞
嗨,这种卡在依赖安装环节还碰到底层漏洞提示的情况确实挺闹心的,我给你整理了几个实战过的解决方案,你可以一步步试试:
解决卡在expo-modules-core的问题
彻底清理缓存后重试
缓存堆积经常会导致依赖安装异常,先执行以下命令清掉各类缓存:# 清理npm缓存 npm cache clean --force # 清理React Native缓存 npx react-native start --reset-cache # 删除node_modules和锁文件后重装 rm -rf node_modules package-lock.json npm install手动指定NDK版本,避免自动下载卡顿
expo-modules-core对NDK版本有要求,自动安装时可能因为网络或版本兼容问题卡住。你可以手动在Android项目配置里指定稳定版本:
打开android/build.gradle,在android块中添加NDK版本配置:android { // 其他配置... ndkVersion = "25.1.8937393" // 这个版本适配大部分RN 0.70+和Expo模块 }然后打开Android Studio的SDK Manager,手动下载对应版本的NDK,再重新执行Expo安装命令。
切换稳定网络或镜像源
依赖下载慢大概率是网络问题,试试切换到稳定的网络环境,或者给npm设置国内镜像加速:npm config set registry https://registry.npmmirror.com手动安装指定版本的expo-modules-core
自动安装的版本可能和你的RN版本不兼容,先卸载现有包再手动安装兼容的稳定版:npm uninstall expo-modules-core # 替换成和你RN版本匹配的版本,比如RN 0.70+选1.11.x系列 npm install expo-modules-core@1.11.0
处理高风险漏洞问题
先排查漏洞具体来源
不要急着执行npm audit fix --force(强制修复可能破坏依赖链),先运行npm audit查看漏洞的具体依赖包和影响范围,确认是直接依赖还是间接依赖的问题。用依赖覆盖强制修复间接漏洞
如果漏洞来自间接依赖,可以通过npm overrides(npm 8+支持)强制升级有漏洞的子依赖。比如在package.json中添加:"overrides": { "有漏洞的依赖包名": "修复后的安全版本号" }然后重新执行
npm install,就能强制项目使用修复后的版本。等待官方修复或降级兼容版本
如果漏洞来自Expo官方模块,先查看Expo的GitHub Issue或更新日志,确认是否已有修复版本。如果暂时没有,可以考虑降级到没有漏洞提示的Expo稳定版本,保证项目能正常运行。
备注:内容来源于stack exchange,提问作者chris aimsworth




