重装node_modules后AWS Amplify项目出现报错求助
问题解决方案
一、处理AWS Amplify依赖冲突
你的package.json同时存在@aws-amplify/react-native(v1.0.27)和旧版aws-amplify-react-native(v7.0.8),这两个包属于Amplify不同版本体系,会直接导致模块加载混乱,是引发两个错误的核心原因:
- 卸载冲突包:
npm uninstall @aws-amplify/react-native aws-amplify-react-native - 重新安装适配Expo 50的官方推荐包:
注:Amplify v6版本中,原npm install aws-amplify @aws-amplify/react-nativeaws-amplify-react-native的功能已整合到@aws-amplify/react-native,无需单独安装旧包。
二、修复"main"未注册错误
该错误由依赖加载失败引发,配合以下操作彻底清理缓存:
- 删除本地依赖和锁文件:
rm -rf node_modules package-lock.json yarn.lock - 清除Metro开发服务器缓存并重启:
npx expo start --clear - 确认
package.json中main字段配置正确:你的"main": "node_modules/expo/AppEntry.js"是Expo项目标准配置,无需修改。
三、解决putVocabularies undefined错误
这个错误是因为Amplify v6对@aws-amplify/interactions的调用方式做了变更,旧调用路径已失效:
- 检查代码中调用
putVocabularies的位置,改用v6的标准调用方式:import { Interactions } from 'aws-amplify'; await Interactions.putVocabularies({ /* 传入你的参数 */ }); - 你的
@aws-amplify/interactions(v6.0.26)与aws-amplify(v6.0.26)版本匹配,依赖冲突解决后即可正常加载模块。
四、额外优化建议
你的package.json包含一些Expo项目无需手动安装的依赖,可能干扰Metro运行,建议卸载:
npm uninstall @react-native/metro-babel-transformer @react-native/metro-config metro-runtime
内容的提问来源于stack exchange,提问作者Lannel Hamilton
相关产品推荐
相关产品推荐

