React Native项目执行amplify add auth时报重复文件或模拟文件错误
React Native 集成 Amplify Auth 触发 Duplicated files or mocks 错误解决方案
报错原因
该错误由打包工具(Metro/Jest)扫描项目文件时,同时匹配到 Amplify 自动生成的两个目录下的同名配置文件导致冲突:
amplify/#current-cloud-backend:Amplify 本地同步云端状态的缓存目录,不需要参与项目打包amplify/backend:本地存储 Amplify 资源配置的开发目录
排查&解决步骤
- 配置 Metro 忽略规则(必做,解决打包/启动报错)
打开项目根目录的metro.config.js文件,在resolver配置中添加blockList规则屏蔽缓存目录扫描:const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config'); const config = { resolver: { blockList: [ /.*#current-cloud-backend.*/ ] } }; module.exports = mergeConfig(getDefaultConfig(__dirname), config); - 配置 Jest 忽略规则(仅单元测试触发报错时需要)
打开项目根目录的jest.config.js,或package.json内的jest配置段,添加如下规则:{ "modulePathIgnorePatterns": [ "<rootDir>/amplify/#current-cloud-backend/" ] } - 清理缓存重启服务
执行对应命令清理本地打包缓存后重启服务即可生效:- 原生RN项目:
npx react-native start --reset-cache - Expo项目:
npx expo start --clear
- 原生RN项目:
- 可选异常修复:如果修改规则后仍报错,可执行
amplify pull重新同步云端资源状态,同步完成后再次清理缓存重启即可。
内容的提问来源于stack exchange,提问作者Bilal Malik
相关产品推荐
相关产品推荐

