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

React Native运行报DuplicateError重复文件或模拟文件错误如何解决?

React Native Amplify 重复文件报错解决方案

错误根源

当前报错的核心原因是AWS Amplify自动生成的#current-cloud-backend和backend两个目录下存在完全同名的云函数配置文件,React Native 内置的Metro打包器默认会扫描项目全目录的可识别模块,两个路径下的CreatePaymentIntent/src/package.json被识别为重复模块,触发构建失败。
你看到的「未连接任何应用」警告属于次生问题:构建失败导致应用没有正常完成启动,开发服务无法和运行中的应用建立连接,修复重复文件问题后该警告会自动消失。

修复步骤

方案1:配置Metro忽略冲突目录(推荐,无侵入无需修改Amplify配置)

  • 找到项目根目录下的metro.config.js文件,不存在则手动新建
  • 新增忽略#current-cloud-backend目录的配置,示例如下:
// 未使用Expo的项目用下面这行导入
// const { getDefaultConfig } = require('metro-config');
// 使用Expo的项目用下面这行导入
const { getDefaultConfig } = require('expo/metro-config');

module.exports = (async () => {
  const defaultConfig = await getDefaultConfig(__dirname);
  return {
    ...defaultConfig,
    resolver: {
      ...defaultConfig.resolver,
      // 新版Metro用blockList参数,旧版用blacklistRE参数,二选一即可
      blockList: /(.*\/#current-cloud-backend\/.*)/,
      // blacklistRE: /(.*\/#current-cloud-backend\/.*)/
    }
  };
})();
  • 配置完成后清空缓存重启开发服务即可:
    • 普通RN项目执行命令:npx react-native start --reset-cache
    • Expo项目执行命令:npx expo start --clear

方案2:修改Amplify配置禁止生成冲突目录

如果你不需要本地调试云函数代码,可以直接配置Amplify忽略生成#current-cloud-backend目录:

  • 打开amplify/.config/project-config.json文件
  • 新增配置项:"ignoreFilePath": ["#current-cloud-backend"]
  • 执行amplify pull重新拉取云端配置即可

验证效果

重启开发服务后无DuplicateError报错即代表修复完成,待应用成功启动后,开发者菜单可以正常呼出,「未连接任何应用」的警告会自动消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:39:02