我对React Native还是很陌生,想将我的React-Native应用程序转换为expo,以便能够开始测试。但是,这并不像我想象的那么容易。
我已经读到'exp convert'不起作用,并且'expo init'并创建一个新项目,复制代码并'yarn add'依赖是目前最简单的方法。 但。我觉得这并不容易。
我认为可能是因为我不完全理解旧项目中的“纱线添加”依赖项
我将包含源代码的文件夹从react-native项目复制到了新的expo项目,并将依赖项从同一项目复制到了新项目。然后我运行了“纱线安装”。
但是,当我“启动”新项目并启动iOS模拟器时,出现以下错误:
错误
14:06
运行xcrun simctl boot AD3359F1-A3C7-4AEA-923B-E0DC7701FA8B
时出错:处理命令时遇到错误(domain = com.apple.CoreSimulator.SimError,代码= 164):
无法以当前状态启动设备:已启动
错误
14:06
在iOS Simulator中启动设备时出现问题。退出模拟器,然后再试一次。
错误
14:06
安装或运行应用程序时出错。错误:xcrun退出,非零代码:164
当我然后在模拟器中打开应用程序时,显示以下错误: * 没有捆绑包网址。
确保您正在运行打包程序服务器,或在应用程序捆绑包中包含一个.jsbundle文件。
RCTFatal 28- [RCTCxxBridge handleError:] _ block_invoke _dispatch_call_block_and_release _dispatch_client_callout _dispatch_main_queue_callback_4CF __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE __CFRunLoopRun CFRunLoopRunSpecific GSEventRunModal UIApplicationMain 主要 开始 0x0 *
有人可以彻底解释一下如何将React-native应用程序转换为Expo吗?
答案 0 :(得分:1)
从字面上复制了package.json中的依赖项来解决该问题,而新的expo项目中还没有这个依赖项。
然后我在终端上运行了“纱安装”。
然后我复制了我的源代码,包括我的app.js和index.js,它们随后崩溃了。找出它在没有index.js文件的情况下可以工作。
然后另一个问题是一个错误: 试图注册两个具有相同名称的视图RNGestureHandlerButton
这是因为我的依赖项之一是: “ react-native-gesture-handler”:“ ^ 1.1.0”, 我发现它已经包含在expo包中了,所以我删除了它。
然后我删除了yarn.lock和node_modules并再次运行“ yarn install”。 现在可以使用了。
答案 1 :(得分:0)
还添加纱线(您的意思是您没有完全理解),这些依赖关系意味着将它们逐一地放回到新项目中。
示例:
添加纱线@ react-native-community / slider-安装滑块
纱线添加...
然后所有人都这样
但是像复制package.json一样容易,它包含有关所有信息的信息。然后“纱线安装”或“ npm安装”并将它们安装到新项目中,以便您可以使用它们。