Amplify: Expo无法连接到开发服务器



我有一个React-Native应用程序,使用AWS Amplify在使用expo start --web进行测试时与Expo一起工作,但我试图在iOS设备上进行测试并获得Could not connect to development server.错误。URL: http://192.168.1.6:19000/node_modules%5Cexpo%5CAppEntry.bundle?platform=ios&dev=true&hot=false&minify=false

编辑:我已经尝试启动一个空白项目,使用amplify pull,然后发生此错误:

jest-haste-map: Haste module naming collision: projectamplifyjsc7fc9745PostConfirmation
The following files share their name; please adjust your hasteImpl:
* <rootDir>amplify#current-cloud-backendfunctionprojectamplifyjsc7fc9745PostConfirmationsrcpackage.json
* <rootDir>amplifybackendfunctionprojectamplifyjsc7fc9745PostConfirmationsrcpackage.json    
Failed to construct transformer:  DuplicateError: Duplicated files or mocks. Please check the console for more info
at setModule (C:UsersmeDesktopprojectnode_modulesjest-haste-mapbuildindex.js:620:17)
at workerReply (C:UsersmeDesktopprojectnode_modulesjest-haste-mapbuildindex.js:691:9)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async Promise.all (index 50) {
mockPath1: 'amplify\#current-cloud-backend\function\projectamplifyjsc7fc9745PostConfirmation\src\package.json',
mockPath2: 'amplify\backend\function\projectamplifyjsc7fc9745PostConfirmation\src\package.json'}
Error: Duplicated files or mocks. Please check the console for more info
at setModule (C:UsersmeDesktopprojectnode_modulesjest-haste-mapbuildindex.js:620:17)
at workerReply (C:UsersmeDesktopprojectnode_modulesjest-haste-mapbuildindex.js:691:9)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async Promise.all (index 50)
Error: Duplicated files or mocks. Please check the console for more info
at setModule (C:UsersmeDesktopprojectnode_modulesjest-haste-mapbuildindex.js:620:17)
at workerReply (C:UsersmeDesktopprojectnode_modulesjest-haste-mapbuildindex.js:691:9)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async Promise.all (index 50)

这是什么,如何解决?

这个答案来自于一个在Amplify API中遇到类似问题的人,在这里找到它:Amplify React Native -使用Amplify add API时出现重复错误

解决方案很简单(至少对我来说,这可能取决于你使用的放大服务)。

Amplify创建当前云后端配置的副本amplify/#current-cloud-backend/.

你不需要这些文件来构建你的应用,所以你可以忽略它们为了消除错误。

可以创建黑名单,并将该文件夹加入黑名单。创建

在项目的根目录下创建一个rn-cli.config.js

文件。./rn-cli.config.js:

require('metro').createBlacklist;
const blacklist = require('metro-config/src/defaults/blacklist');
module.exports = {   resolver: {
blacklistRE: blacklist([/#current-cloud-backend/.*/]),   }, }; ```

见这里给出的答案:https://stackoverflow.com/a/60899723/11255886