You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

删除yarn.lock重装后Expo遇BigInt未找到及main未注册错误求助

解决删除yarn.lock后React Native项目出现BigInt未找到及AppRegistry未注册问题

问题根源

删除yarn.lock后,Yarn会拉取依赖的最新兼容版本,原项目依赖版本是经过验证的稳定组合,新版本依赖可能引入了对BigInt的使用,但当前React Native/Expo环境未提供该特性的polyfill,导致初始化报错,进而引发AppRegistry未注册的连锁问题。

解决方法

1. 恢复原依赖版本(最直接方案)

从仓库重新拉取原始的yarn.lock文件,或使用本地备份恢复,然后执行:

yarn install

此方法能直接回到项目验证过的依赖版本组合,彻底规避版本兼容问题。

2. 添加BigInt Polyfill(需保留新依赖版本时使用)

如果需要升级依赖,通过添加polyfill解决BigInt缺失问题:

  • 安装必要依赖:
    yarn add @babel/plugin-transform-bigint core-js --dev
    
  • 修改项目根目录的babel.config.js,配置polyfill和转换插件:
    module.exports = function(api) {
      api.cache(true);
      return {
        presets: ['babel-preset-expo'],
        plugins: [
          ['@babel/plugin-transform-bigint', { loose: true }],
          ['core-js', { version: '3.20', proposals: true }]
        ]
      };
    };
    
  • 清除Metro缓存并重启开发服务:
    yarn start --reset-cache
    

3. 锁定核心依赖版本

查看原yarn.lock中react-native、expo等核心依赖的具体版本,在package.json中写死版本号(移除版本号前的^或~符号),例如:

{
  "dependencies": {
    "react-native": "0.68.2",
    "expo": "45.0.0"
  }
}

然后重新执行yarn install,确保依赖版本与原项目一致。

注意事项

不要随意删除yarn.lock或package-lock.json,这类文件用于锁定依赖版本,保证不同开发环境、部署环境中安装的依赖完全一致,避免版本兼容类问题。

内容的提问来源于stack exchange,提问作者Lê Văn Thành

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 13:35:16