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

React Native Release打包报错:无法找到已移除的haul模块

Fix "Cannot find module 'haul/bin/cli.js'" in React Native Release Build

问题背景

你已经移除了Haul并在开发环境通过清缓存解决了报错,但Release构建时app:bundleReleaseJsAndAssets阶段又复现问题,且项目中搜不到"haul"字符串——这大概率是Gradle配置或构建缓存中残留了Haul的引用,毕竟Release构建依赖Gradle流程,和开发环境的Metro启动逻辑不一样。

解决方案步骤

  • 检查Android Gradle配置文件
    打开android/app/build.gradle,查找project.ext.react块里的bundleCommand配置,如果之前为了Haul修改过这个值(比如设为haul bundle),改回默认的react-native bundle。同时检查android/build.gradle里有没有引入Haul相关的插件或依赖,有的话删除。

  • 清理Gradle缓存与构建产物
    开发环境的缓存清理不覆盖Gradle的缓存,执行以下命令彻底清理:

    cd android
    ./gradlew clean
    ./gradlew cleanBuildCache
    rm -rf .gradle
    rm -rf app/build
    

    之后回到项目根目录重新安装依赖,再尝试打包。

  • 检查锁文件与配置文件残留

    • 打开yarn.lock或package-lock.json,搜索"haul"关键字,如果有残留的依赖条目,删除后重新执行yarn install或npm install。
    • 检查项目根目录的metro.config.js、react-native.config.js、.buckconfig等配置文件,确认没有遗留Haul相关的配置代码。
  • 强制重置所有构建缓存
    把之前的清理命令和Gradle清理结合起来,一次性清空所有可能的缓存:

    rm -rf node_modules
    yarn cache clean # 或 npm cache clean --force
    watchman watch-del-all
    rm -rf $TMPDIR/react-*
    rm -rf $TMPDIR/metro-*
    rm -rf $TMPDIR/haste-*
    cd android && ./gradlew clean cleanBuildCache && rm -rf .gradle app/build && cd ..
    yarn install # 或 npm install
    

为什么开发环境正常但Release出问题?

开发环境启动时用npm start -- --reset-cache会重置Metro的运行缓存,直接加载当前的配置;但Release构建是通过Gradle调用打包命令,Gradle会读取本地缓存的配置和构建产物,哪怕你已经移除了Haul,旧的配置可能还存在Gradle缓存里,导致打包时依然尝试调用Haul的CLI。

内容的提问来源于stack exchange,提问作者cani1see

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:49:38