将现有的React-Native项目转换为Expo

时间:2019-04-30 12:24:03

标签: react-native expo

我对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吗?

2 个答案:

答案 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安装”并将它们安装到新项目中,以便您可以使用它们。