更新依赖后React Native构建iOS报loglevel文件不存在如何解决
问题根因
报错核心是Sentry依赖版本错配+构建缓存残留,没有其他玄学原因:
- 升级时只更新了
@sentry/react-native主包,没有同步对齐其他@sentry/*开头的子依赖版本。高版本@sentry/types已经调整了loglevel文件的输出位置,没升级的其他Sentry关联包还在找旧路径dist/loglevel,自然找不到文件。 - 依赖安装过程出错,node_modules里的
@sentry/types文件不全,或者锁文件里记录的依赖版本有冲突,拉下来的包本身就缺文件。 - Metro打包服务的缓存还存着升级前的旧路径映射,没识别到新依赖的文件结构变化。
修复步骤
按顺序操作,别跳步,基本能覆盖所有同类场景:
- 先对齐所有Sentry包版本:打开package.json,把所有
@sentry/前缀的依赖版本,全部和你装的@sentry/react-native版本号保持完全一致,绝对不能混大版本,比如主包装的5.19.1,其他@sentry/core、@sentry/types、@sentry/utils之类的全改成5.19.1。 - 清掉所有脏的依赖文件:
- 删根目录的node_modules文件夹
- 删ios目录下的Pods文件夹、Podfile.lock文件
- 删根目录对应的包管理锁文件:用yarn删yarn.lock,用npm删package-lock.json,用pnpm删pnpm-lock.yaml
- 清干净所有构建缓存,这步90%的人会漏:
清Metro打包缓存,根据自己用的包管理器执行对应命令:
再进ios目录清Xcode构建缓存:# yarn yarn start --reset-cache # npm npm start -- --reset-cache # pnpm pnpm start -- --reset-cachexcodebuild clean - 重新装全依赖:
根目录执行JS依赖安装:
再进ios目录重装iOS原生依赖:# 选自己用的包管理器对应的命令 yarn install # npm install # pnpm installpod install --repo-update - 重新跑iOS构建命令即可正常打包。
如果走完上面步骤还报错,就全局搜下项目代码里有没有手动写过从@sentry/types/dist/loglevel引内容的代码,有的话改成新版本对应的正确引用路径就行,这种自定义代码导致的问题占比极低,大部分情况都是版本错配加缓存的锅。
内容的提问来源于stack exchange,提问作者Juan Menendez
相关产品推荐
相关产品推荐

